按指数排列的Couchbase非常慢

问题描述 投票:0回答:1

我在s1_date中创建了一个索引,但是这个查询仍然非常慢(15秒)但是当我删除“按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
select indexing where couchbase
1个回答
1
投票

这是查询的真正噩梦。 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 ''),并且它是将成为大多数工作的谓词。特别是那些OR真的搞砸了索引,这意味着让查询快速运行将成为一个问题。

看看您是否可以用其他方式表示您的数据,这样您就不必使用这些OR。

© www.soinside.com 2019 - 2024. All rights reserved.