我有一个N1QL查询,需要20秒才能完成。数据库包含110万条记录,它有一个用于locationCode的GSI类型。以下是查询。
SELECT * FROM
appdb
WHERE locationCode =“1-1-03-010”AND type =“institute”AND lowerName LIKE“%acg%”LILMIT 10 OFFSET 0;
但表现非常糟糕。能否请您就如何提高上述查询的性能向我提出建议?非常感谢任何帮助。
答案 0 :(得分:0)
检查查询的计划文本,以查看查询计划的哪些部分花费的时间最长。如果您使用的是Couchbase 5 Enterprise,您也应该能够查看图形表示。
您可能没有达到预期的索引,或者可能因为您选择*,实际投影数据需要很长时间(我不知道您的文档有多大)。没有这些细节,很难推测。
但如果我不得不推测,LIKE
最有可能占用了大量时间。这应该是一个文本驱动的搜索?如果是这样,您可能需要考虑使用Couchbase的Full Text Search(FTS)功能而不是N1QL用于该用例。在lowerName
字段上创建一个FTS索引(至少)。