在 4.5 创建 gsi 索引中的性能

performance in 4.5 create gsi index

我有以下查询。

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

我在 _type 上没有唯一的索引 喜欢

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

当我 运行 以上查询时,它需要 10 秒

当我尝试创建一些索引时

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

但是它不工作它需要更多的时间 13s。 我也使用过使用索引(dailyCampaignUsage_type_clicks_cost) 但是不行。

我应该创建哪个索引?

你能post 示例文档、EXPLAIN 输出、你有多少文档、couchbase 版本、集群设置(所有服务都在同一节点上,或使用 MDS-多维缩放)等

您可能想尝试将年、月作为索引键..

创建索引 dailyCampaignUsage_type_clicks_cost 开启
Inheritx(_type, DATE_PART_MILLIS(STR_TO_MILLIS(DailyCampaignUsage.day),'year'), DATE_PART_MILLIS(STR_TO_MILLIS(DailyCampaignUsage.day),'month'), 天...) WHERE ...