Couchbase Query с ORDER BY DESC и LIMIT очень медленный
select t.createdDate, t.createdDateTicks from ic_v10_mammoet t where t.type='asset' and t._sync.rev is not null ORDER BY t.createdDateTicks ASC LIMIT 10 OFFSET 0
Приведенный выше запрос занимает 6 секунд, чтобы вернуть результат, а когда я удаляю предложение ORDER BY, это займет всего 18 мс
select t.createdDate, t.createdDateTicks from ic_v10_mammoet t where t.type='asset' and t._sync.rev is not null LIMIT 10 OFFSET 0
У меня есть индекс на createDateTicks, и это целочисленное поле.
Я попробовал обходной путь, упомянутый на обходном пути в качестве последнего комментария, но он не работает.
Может кто-нибудь, пожалуйста, посоветуйте?
Индекс:CREATE INDEX asset_createdDateTicks ON ic_v10_mammoet (createdDateTicks) WHERE type = 'asset'
1 ответ
Вот обходной путь.
CREATE INDEX idx_neg_date ON docs( -createDateTicks ) WHERE type = 'asset';
SELECT t.createdDate, t.createdDateTicks
FROM docs AS t
WHERE t.type='asset' AND -t.createdDateTicks IS NOT NULL
ORDER BY -t.createdDateTicks ASC LIMIT 10 OFFSET 0;