Порядок Couchbase по индексу очень медленный - PullRequest
0 голосов
/ 15 марта 2019

Я создал индекс в s1_date, но этот запрос все еще очень медленный (15 с), но когда я удаляю "order by s1_date desc", он становится быстрее примерно (10 мс). Это запрос :

          SELECT * FROM `bucket_1` WHERE  type = 'type1' AND (batch_number1 like '' OR batch_number2 like '' OR  batch_number2 like '' OR batch_number3 like '' OR batch_number4 like '' OR batch_number5 like '') order by s1_date desc limit 10

1 Ответ

1 голос
/ 15 марта 2019

Это настоящий кошмар запроса. Индекс s1_date не поможет, потому что движок запросов должен применить предикаты type = 'type1' AND (batch_number1 like '' OR batch_number2 like '' OR batch_number2 like '' OR batch_number3 like '' OR batch_number4 like '' OR batch_number5 like '') перед выполнением любого упорядочения, и именно предикаты будут составлять большую часть работы. В частности, эти операционные операции на самом деле все портят для индексации, что означает, что быстрое выполнение запроса будет проблемой.

Посмотрите, можете ли вы представить свои данные каким-либо другим способом, чтобы вам не приходилось использовать эти ИЛИ.

...