Select 按索引排序的Couchbase非常慢

Select 按索引排序的Couchbase非常慢,select,indexing,where,couchbase,Select,Indexing,Where,Couchbase,我已经在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

我已经在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

这是一个真正的查询噩梦。s1_date上的索引不会有帮助,因为查询引擎必须在进行任何排序之前首先应用谓词
type='type1'和(batch_number1 like''或batch_number2 like''或batch_number2 like''或batch_number3 like''或batch_number4 like''或batch_number5 like'')
,谓词将是大部分工作的基础。特别是那些ORs在编制索引时会把事情搞得一团糟,这意味着让查询快速运行将是一个问题


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

如果开头有通配符,Like也是一个问题,对吗?是的,Like语句需要一个固定的前缀才能进行索引。