2017-01-04 3 views
0

У меня есть запрос ниже.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`) 

когда я запускаю выше запрос он принимает 10s

Когда я пытаюсь создать некоторый индекс, как

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

Но это не работает занимает больше времени 13 секунд. У меня также используется индекс использования (dailyCampaignUsage_type_clicks_cost) Но не работайте.

Какой индекс я должен создать?

ответ

0

Вы можете разместить образец документ, EXPLAIN вывода, и сколько документов у вас есть, версия couchbase, настройка кластера (все службы на одном узле, или с помощью MDS-многомерного шкалирования) и т.д.

Вы можете попробовать включая год, месяц в качестве ключей индекса ..

CREATE INDEX dailyCampaignUsage_type_clicks_cost ON
Inheritx (_Type, DATE_PART_MILLIS (STR_TO_MILLIS (DailyCampaignUsage.day), 'год'), DATE_PART_MILLIS (STR_TO_MILLIS (DailyCampaignUsage.day),» месяц), день ...) ГДЕ ...

+0

I также пробовал это также, но не работал –

+0

У меня есть 50k + document Я использую сервер сообщества 4.5. Data RAM Quota: 3520 Data RAM Quota: 512 Полная текстовая оперативная память: 469 только один узел –

+0

hi @krishnpatel, pls post, какой именно запрос/индекс вы пытались. А также образцы документов и объяснение вывода. Проверьте вывод EXPLAIN и убедитесь, что вы можете использовать индекс покрытия. –

 Смежные вопросы

  • Нет связанных вопросов^_^