mongodb skip需要很长时间

时间:2012-05-26 06:39:58

标签: mongodb

  

可能重复:
  Slow pagination over tons of records in mongo

我创建了一个简单的测试:

> db.t.count()
7852054
> db.t.find().skip( 1500000 ).limit(1)
{ "_id" : ObjectId("4fc078aa82618808f416e372"), "value" : 1500000 }
>

使用skip和limit进行分页在大型集合中花费的时间太长。

有没有更好的方法呢?

1 个答案:

答案 0 :(得分:3)

您是否查看了docs

  

不幸的是,跳过可能(非常)昂贵并且需要服务器   从集合的开头走,或索引,到达   偏移/跳过位置,然后才能开始返回数据页面   (限制)。随着页码数量的增加,跳过将变得越来越慢   cpu密集型,可能是IO绑定的,具有更大的集合。

     

基于范围的分页提供了更好的索引使用但不允许   您可以轻松跳转到特定页面。