
当您对数据集进行分页时,“跳过并限制”方法不是很有效。它实际上是Shlemiel
Painter的算法。
范围查询效率更高(当索引支持时)。例如,假设您正在显示推文。您的页面大小是20,您在第1000页上,并且想要加载第1001页。
这个查询
db.tweets.find().sort({created_at: -1}).skip(1001*20).limit(20)是 远 小于有效
db.tweets.find({created_at: {$lt: last_displayed_date}}). sort({created_at: -1}).limit(20);(只要您在上拥有索引
created_at)。
您有个主意:加载页面时,记下最后一条推文的时间戳,并用它来查询下一页。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)