我正在尝试为RethinkDB中的某些查询基准测试任务。我真的没有得到一个问题的好答案为什么RethinkDB的count()
操作如此缓慢?
我有2GB数据的查询:
r.db("2GB").table("table").between(40, r.maxval, {index:"price"})
查询在 5毫秒中执行但是,一旦我想计算像
这样的数字项目r.db("2GB").table("table").between(40, r.maxval, {index:"price"}).count()
耗时超过 6秒 每个使用count操作的查询都非常慢。我见过很多1,但无法得到确切的理由。
更新:
它不只是between()
而是filter
所有其他内容...... count()
非常缓慢
答案 0 :(得分:5)
当您调用between
时,您会返回一个光标,当您迭代它时,它会懒散地将数据加载到磁盘上。因此,返回光标所需的时间是读取第一批数据所需的时间,而不是所有数据。另一方面,count
必须在它返回之前查看整个表格,因此需要时间与表格的大小成比例。