Как правильно создать индекс для подзапроса на сервере couchbase? - PullRequest
0 голосов
/ 15 ноября 2018

Как сделать правильный индекс для этого запроса? Мне нужно ускорить этот запрос.

SELECT q1, q2 
LET q1 = (Select ht.* FROM `mybucket` as mb WHERE mb.recdate IN (SELECT RAW MAX(recdate) FROM `mybucket` as mbt WHERE mbt.deviceID = "10101")), 
    q2 = (Select ht.* FROM `mybucket` as mb WHERE mb.recdate IN (SELECT RAW MAX(recdate) FROM `mybucket` as mbt WHERE mbt.deviceID = "10001"));

1 Ответ

0 голосов
/ 15 ноября 2018

У вас есть два параллельных запроса, каждый с подзапросом. Эти два запроса очень похожи.

Вы можете сделать это с двумя индексами.

Этот должен соответствовать подзапросу в каждом случае:

CREATE INDEX date_deviceid_idx on mybucket(deviceID, recdate)

И этот должен соответствовать основному запросу в каждом случае:

CREATE INDEX ht_recdate_idx on mybucket(recdate, ht)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...