查询type等于type_3的文档需创建哪种N1QL索引?
N1QL查询对应索引创建方案
你需要基于过滤字段type创建二级索引即可满足该查询需求,无需扫描全量文档,具体方案如下:
1. 基础索引创建
将语句中的your_bucket_name替换为你实际使用的Couchbase桶名执行即可:
CREATE INDEX idx_doc_type ON `your_bucket_name`(type);
该索引专门针对type字段的等值查询做了优化,能快速定位所有type为指定值的文档。
2. 对应查询语句
索引创建完成后,执行以下语句即可拿到所有type="type_3"的文档:
SELECT * FROM `your_bucket_name` WHERE type = "type_3";
如果你使用了Couchbase的Scope和Collection功能,只需要把语句中的桶名替换为完整的集合路径your_bucket_name.your_scope.your_collection即可。
3. 性能优化方案(可选)
如果你这类查询高频出现,且需要返回id、data字段,可以创建覆盖索引避免回查原文档,进一步提升查询效率:
CREATE INDEX idx_doc_type_covering ON `your_bucket_name`(type) INCLUDE (id, data);
内容的提问来源于stack exchange,提问作者Ralf
相关产品推荐
相关产品推荐

