通过MongoDB实现寻呼的方法

通过MongoDB实现寻呼的方法
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

这种方法使用空间来改变时间。一般来说,数据库查询时间主要用于数据库连接和缓存中,大大加快了查询速度

以上是本文的全部内容,希望能对您有所帮助,希望大家多多支持

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部