4

我正在尝试对 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 秒 每个使用计数操作的查询都非常慢。我在 github 中看到了很多问题,但找不到确切的原因。

更新:不仅如此,between()而且所有其他类似filter的......count()速度非常慢

4

1 回答 1

5

当您调用时,between您会返回一个游标,它会在您遍历它时懒惰地从磁盘加载数据。所以返回游标所需的时间是读取第一批数据所需的时间,而不是读取所有数据所需的时间。 count另一方面,必须先查看整个表才能返回,因此所需时间与表的大小成正比。

于 2015-07-11T22:26:14.133 回答