我正在使用Couchbase 6社区版,我的存储桶中有大约200万个小尺寸(<5000字节)的文档 每个文档都有一个名为country的字段,而我在此字段上有一个GSI。 此字段有四个唯一值,但是,查询要获得这些唯一值需要8到10秒。 我不确定为什么会这么慢。 我的查询是:
SELECT DISTINCT(country)
FROM test_bucket
USE INDEX(country_index USING GSI)
WHERE country IS NOT MISSING
此存储桶上的内存配额为50 GB。 该机器有40个内核。
我想问一下这里的瓶颈是什么或在这种情况下会导致瓶颈的原因
答案 0 :(得分:1)
您有正确的索引。由于您有200万个国家/地区文档,因此查询引擎需要从索引器中获取所有200万个条目并消除重复项。使用第341页https://blog.couchbase.com/n1ql-practical-guide-second-edition/
中所述的请求配置文件还介绍了https://dzone.com/articles/count-amp-group-faster-using-n1ql
的结帐技术如果您可以使用EE版本,则可以通过将查询更改为分组方式来使用索引聚合,如此处https://blog.couchbase.com/understanding-index-grouping-aggregation-couchbase-n1ql-query/所述。
SELECT country
FROM test_bucket
USE INDEX(country_index USING GSI)
WHERE country IS NOT MISSING
GROUP BY country;