1

可能重复:
在 mongo 中对大量记录进行缓慢分页

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

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

在庞大的集合中,使用跳过和限制进行分页需要很长时间。

有没有更好的方法来做到这一点?

4

1 回答 1

3

你看过文档吗?

不幸的是,跳过可能(非常)昂贵,并且需要服务器从集合或索引的开头走到偏移/跳过位置,然后才能开始返回数据页面(限制)。随着页码的增加,skip 会变得更慢,CPU 密集度更高,并且可能会受到 IO 限制,并且集合更大。

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

于 2012-05-26T14:30:54.163 回答