cursor.skip()很贵,有替代方法吗

时间:2016-01-18 16:28:26

标签: mongodb

经历 cursor.skip() MongoDB我读到这是一种昂贵的方法,我完全理解为什么它很昂贵,因为游标必须从开始执行此跳过。在下面的段落中他们写了

  

考虑对这些类型的任务使用基于范围的分页。也就是说,查询一系列对象,使用应用程序中的逻辑来确定分页而不是数据库本身。如果您不需要轻松跳转到特定页面,则此方法具有更好的索引利用率。

我不明白这部分,这是如何克服skip()操作的“昂贵(ness)”。 感谢

1 个答案:

答案 0 :(得分:1)

当使用cursor.skip(N)时,服务器找到所有匹配的数据,然后跳过前N个匹配的文档。

当使用基于范围的分页(即具有日期范围)时,服务器将仅查找并返回匹配的文档。如果你的分页所依据的属性被索引,那么也将使用索引。

不同之处在于服务器在两种情况下必须读取的数据量。