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
предложение в вашем запросе, но вы должны удалить его.