哪些因素可以使项目计数与 couchbase 中的项目 ID 计数不同?
What are the factors that can make the item count differ from the item id count in couchbase?
在 3 节点 Couchbase Community Edition 5.0.1 build 5003 集群上,couchbase 表示它包含 12268503 个项目。但是统计id的时候,结果是6132875.
哪些因素会导致 couchbase 中的项目计数与项目 id 计数不同?
更准确地说,当在存储桶上执行以下 N1QL 查询时 - 例如 Product
SELECT count(1) FROM Product
给出
12268503
当对项目 ID 进行计数时
SELECT count(META(Product).id) FROM Product
它returns:
6132875
即id数量小于item数量的50%
另外,他们几个小时都没有对bucket进行任何操作(0ops/s),这排除了由于流量高峰导致主索引赶不上的可能性。
我仔细阅读了 couchbase 博客和文档,但没有找到关于此计数差异的任何线索。非常感谢任何指针。
如果查询没有 predicate/no 连接并且投影有单个表达式 count(*), count(constant) 查询从 bucket stats 获取结果并提供信息(需要亚毫秒)。
SELECT count(*) FROM Product;
SELECT count(1) FROM Product;
以下几乎相似,但 COUNT 参数是表达式,因此它必须使用索引并进行聚合(因为在这种情况下文档键是唯一的并且必须是字符串,优化器应该考虑作为以前的方法,截至目前没有优化)
SELECT count(META(Product).id) FROM Product
在第二种情况下它使用索引,您的索引可能有待处理的项目并且没有赶上。尝试使用 scan_consistency。检查以 .
开头的索引统计信息
在 3 节点 Couchbase Community Edition 5.0.1 build 5003 集群上,couchbase 表示它包含 12268503 个项目。但是统计id的时候,结果是6132875.
哪些因素会导致 couchbase 中的项目计数与项目 id 计数不同?
更准确地说,当在存储桶上执行以下 N1QL 查询时 - 例如 Product
SELECT count(1) FROM Product
给出
12268503
当对项目 ID 进行计数时
SELECT count(META(Product).id) FROM Product
它returns:
6132875
即id数量小于item数量的50%
另外,他们几个小时都没有对bucket进行任何操作(0ops/s),这排除了由于流量高峰导致主索引赶不上的可能性。
我仔细阅读了 couchbase 博客和文档,但没有找到关于此计数差异的任何线索。非常感谢任何指针。
如果查询没有 predicate/no 连接并且投影有单个表达式 count(*), count(constant) 查询从 bucket stats 获取结果并提供信息(需要亚毫秒)。
SELECT count(*) FROM Product;
SELECT count(1) FROM Product;
以下几乎相似,但 COUNT 参数是表达式,因此它必须使用索引并进行聚合(因为在这种情况下文档键是唯一的并且必须是字符串,优化器应该考虑作为以前的方法,截至目前没有优化)
SELECT count(META(Product).id) FROM Product
在第二种情况下它使用索引,您的索引可能有待处理的项目并且没有赶上。尝试使用 scan_consistency。检查以 .
开头的索引统计信息