【问题标题】:Couchbase N1ql queriesCouchbase N1ql 查询
【发布时间】:2019-05-07 20:23:24
【问题描述】:

关于 Couchbase 中的 N1QL 查询,我有两个问题。

1: 假设我有用户表,其中用户 ID 是文档键,然后我 触发这样的查询

select * from mybucket use keys["1234"];

2:假设 userid 不是文档键,然后我在 userid 上创建二级索引

select * from mybucket where userid=1234;

所以我的问题是,哪个查询会执行得更快?

第二个问题是,

假设我有用户表,其中 userid 是文档键

select * from mybucket where meta().id="1234";

此查询未运行并给我“键空间上没有可用索引”。 它是一个文档密钥,它应该像“使用密钥”一样运行。我尝试在 userid 上创建二级索引,但它说无法创建索引,因为该字段不是文档的一部分(显然,它是文档键)

【问题讨论】:

    标签: couchbase n1ql


    【解决方案1】:

    第一个查询将运行得最快。直接在 USE KEYS 子句中命名特定键可以让 Couchbase 在单个请求中直接检索记录。使用索引的第二种方法会稍微慢一些,因为系统首先必须向索引发出请求以获取文档 ID,然后再检索记录本身。第二种方法仍然非常快,但不如第一种快。

    是的,根据您使用的版本,我们可能不会完全优化第三种情况。如果可以,请使用 USE KEYS。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多