MonDB的分页
查询是通过三个
功能组合的分页,限制(),(),跳过和
排序()。
以下是我的测试数据
Db.test.find()()。排序({年龄:1 });
第一种
方法 查询的数据在第一页:db.test.find()()。排序({年龄:1 })限制(2);
查询数据的第二页:db.test.find()。排序({年龄:1 })。跳过(2)限制(2);
用类推法核对其他页数。
第二方法
查询的数据在第一页:db.test.find()()。排序({年龄:1 })限制(2);
它和上面的第一个是一样的。
查询第二页数据:
这是第一页最后一条记录的值,然后将先前的记录排除在外,可以获得新记录。
总之,如果数据不是很高,可以使用第一种方法比较简单,毕竟,如果数据量足够大,第二种方法的使用比较好,因为这不会跳过(跳过)这个
函数,跳过太多的记录,效率很低。
经过仔细考虑,第二种方法并不真正适合跳转页面,而且效率不是很高。
对于海量数据,我们必须做一些特殊
处理。
有2种方法可以做。
第一种方法
限制页面的分页数量,页面处理类似百度的百度,700多条记录正好在
显示器前面,所以不考虑
性能问题,毕竟,大多数人只要翻到首页十,就会找到自己的需要。
应估计下列统计结果,并根据记录的比率估计记录总数。
第二方法
我们能做到这一点,假设根据ID,我们可以
保存ID和数量的页数,ID位于redis / membercached,
像这样,假设每页有10条记录。
ID页面
十一
二十一
。
一百零一
一百一十二
一百二十二
对.
二百零二
因此,当我们查看第一页时,我们可以直接取出十个数据。
假设有1亿个数据块,一个记录id代表4个字节,另一个字节是一个字节,一个记录占用5字节。
100000000 * 5 /(1024×1024)= 476mb
这种方法使用
空间来改变时间。一般来说,数据库查询时间主要用于数据库
连接和缓存中,大大加快了查询
速度。
以上是本文的全部内容,希望能对您有所帮助,希望大家多多
支持。