Couchbase N1ql查询

时间:2018-12-06 07:16:05

标签: couchbase n1ql

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

1:假设我有一个用户表,其中userid是文档密钥,然后我    触发这样的查询

从mybucket使用键中选择* [“ 1234”];

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

从mybucket中选择*,其中userid = 1234;

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

第二个问题是,

假设我有一个用户表,其中userid是文档密钥

从mybucket中选择*,其中meta()。id =“ 1234”;

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

1 个答案:

答案 0 :(得分:4)

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

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