N1ql занимает много времени, чтобы выполнить

SELECT a.*, META(a).id FROM `pricing_qa_2` AS a
WHERE a.dtype = "qqcfxspd"  AND  1 = 1
ORDER BY LOWER(a.sch_name) ASC, a.aud_info.ts DESC  OFFSET 0 limit 24

Выше запрос занимает много времени, вы можете предложить apt индекс для этого запроса.

3 ответа

Решение

Следующие комбинации Индекс и запрос должны были использовать Порядок индексов, избегая сортировки и дополнительной выборки за счет сортировки. Оформить заказ ОБЪЯСНИТЬ.

CREATE INDEX ix1 ON pricing_qa_2(LOWER(sch_name), aud_info.ts DESC) WHERE dtype = "qqcfxspd";

SELECT a.*, META(a).id 
FROM  `pricing_qa_2`  AS a 
WHERE a.dtype = "qqcfxspd" AND LOWER(sch_name) IS NOT NULL
ORDER BY LOWER(sch_name) ASC, aud_info.ts DESC 
OFFSET 0 
LIMIT 24;

ИЛИ ЖЕ

CREATE INDEX ix1 ON pricing_qa_2(dtype, LOWER(sch_name), aud_info.ts DESC);

SELECT a.*, META(a).id 
FROM  `pricing_qa_2`  AS a 
WHERE a.dtype = "qqcfxspd" 
ORDER BY LOWER(sch_name) ASC, aud_info.ts DESC 
OFFSET 0 
LIMIT 24;

Спасибо за предложение, Йохан и VSR очень помогли. После создания индекса и внесения небольшого изменения в запрос я могу получить результат в миллисекундах.

REATE INDEX ix1 ON pricing_qa_2(LOWER(sch_name), aud_info.ts DESC) WHERE dtype = "qqcfxspd";

SELECT *, META().id FROM `pricing_qa_2` 
WHERE dtype = "qqcfxspd"  AND lower(sch_name) is not missing and aud_info.ts is not missing 
ORDER BY LOWER(ch_name) , aud_info.ts DESC  OFFSET 0 limit 24

Первое, что нужно попробовать, это индекс a.dtype:

CREATE INDEX dtype_idx ON pricing_qa_2(dtype)

Я не понимаю, почему у вас есть 1 = 1 предложение в вашем запросе, но вы должны удалить его.

Другие вопросы по тегам