关于Couchbase中的N1QL查询,我有两个问题。
1:假设我有用户表,其中userid是文档键,然后触发如下查询
选择*从我的桶中使用键“1234”;
2:假设userid不是文档键,然后我在userid上创建一个辅助索引
从我的桶中选择* userid=1234;
所以我的问题是,哪个查询执行得更快?
第二个问题是,
假设我有用户表,其中userid是文档键。
从mybucket中选择*,其中meta().id="1234";
此查询不运行,并给出“键空间上没有可用索引”。它是一个文档键,它应该像“使用键”一样运行。我试图在userid上创建一个辅助索引,但是它说索引不能创建,因为这个字段不是文档的一部分(显然,它是文档键)。
发布于 2018-12-06 11:41:53
第一个查询将运行得最快。在USE子句中直接命名特定的键可以让Couchbase在单个请求中直接检索记录。使用索引的第二种方法将稍微慢一些,因为系统首先必须向索引发出请求才能获得文档id,然后检索记录本身。第二种方法仍然非常快,但不像第一种方法那么快。
是的,取决于您使用的版本,我们可能不会完全优化第三种情况。如果可以的话,可以用钥匙。
https://stackoverflow.com/questions/53646313
复制相似问题