2017-01-04 66 views
0

我有下面的查詢。性能4.5創建gsi索引

SELECT DailyCampaignUsage.day date, sum (ARRAY_SUM(DailyCampaignUsage.`statistics`[*].clicks)) clicks, 
sum (ARRAY_SUM(DailyCampaignUsage.`statistics`[*].clicksCost)) revenue 
FROM Inheritx DailyCampaignUsage 
JOIN Inheritx Campaign ON KEYS ('Campaign|'||TOSTRING(DailyCampaignUsage.campaignId)) 
JOIN Inheritx Users on keys('User|'|| TOSTRING(Campaign.`user`))  
WHERE DailyCampaignUsage._type='DailyCampaignUsage' and  
DATE_PART_MILLIS(STR_TO_MILLIS(DailyCampaignUsage.day),'year')=2016  
and DATE_PART_MILLIS(STR_TO_MILLIS(DailyCampaignUsage.day),'month')=5 
group by DailyCampaignUsage.day 
order by DailyCampaignUsage.day 

我有一個像

CREATE INDEX `Ottoman__type` ON `Inheritx`(`_type`) 

上_type 沒有唯一指標,當我運行上面的查詢它正在10S

當我試圖創建一個像

CREATE INDEX `dailyCampaignUsage_type_clicks_cost` ON 
`Inheritx`(_type,day,`statistics`[*].clicks,`statistics`[*].clicksCost) WHERE 
`_type` = "DailyCampaignUsage" USING GSI 
一些指數

但它不工作花更多時間13s。 我也用use index(dailyCampaignUsage_type_clicks_cost) 但是不行。

我應該創建哪個索引?

回答

0

您可以張貼樣本文檔,EXPLAIN輸出,以及有多少文件,你有,couchbase版本,羣集安裝(同一節點上的所有服務,或者使用MDS-多維標度)等

您可能希望嘗試包括年,月爲索引鍵..

CREATE INDEX ON dailyCampaignUsage_type_clicks_cost
Inheritx(_type,DATE_PART_MILLIS(STR_TO_MILLIS(DailyCampaignUsage.day), '年'),DATE_PART_MILLIS(STR_TO_MILLIS(DailyCampaignUsage.day),」月'),日...)其中...

+0

I也試過這個也沒有工作 –

+0

我有50k +文件 我使用4.5社區服務器。 數據RAM限額:3520 數據RAM限額:512 全文RAM配額:469 只有一個節點 –

+0

嗨@krishnpatel,請發佈您嘗試的確切查詢/索引。並且,還有示例文檔並解釋輸出。檢查EXPLAIN輸出,並確保可以使用覆蓋索引。 –