为什么RethinkDB的计数操作如此之慢?

时间:2015-07-11 21:55:28

标签: rethinkdb reql

我正在尝试为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()非常缓慢

1 个答案:

答案 0 :(得分:5)

当您调用between时,您会返回一个光标,当您迭代它时,它会懒散地将数据加载到磁盘上。因此,返回光标所需的时间是读取第一批数据所需的时间,而不是所有数据。另一方面,count必须在它返回之前查看整个表格,因此需要时间与表格的大小成比例。