[发明专利]一种基于MongoDB的数据分页优化方法在审

专利信息
申请号: 201610080695.8 申请日: 2016-02-05
公开(公告)号: CN105760457A 公开(公告)日: 2016-07-13
发明(设计)人: 唐雪飞;吴亚骏;陈科;胡略;杨桥 申请(专利权)人: 成都康赛信息技术有限公司
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 成都宏顺专利代理事务所(普通合伙) 51227 代理人: 周永宏
地址: 610054 四川省成都市一*** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 mongodb 数据 分页 优化 方法
【说明书】:

技术领域

发明属于数据库性能优化领域,具体涉及一种基于MongoDB的数据分页优化方法。

背景技术

随着互联网Web2.0网站的兴起,传统的关系型数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的Web2.0纯动态网站时已经显得力不从心,暴露了很多难以克服的问题,例如对数据库高并发读写的问题、对海量数据的高效率存储和访问的问题,以及数据库的高扩展性和高可用性的问题。

为了应对以上问题,非关系性数据库NoSQL(NotOnlySQL,是一种新型的数据库方面的革命)应运而生,它通过降低关系型数据库的数据库事务一致性、写实时性读实时性,以及弱化复杂的SQL查询功能来解决Web2.0网站建设中遇到的问题。其中MongoDB就是其中一个典型的代表。MongoDB是一个开源的,基于分布式的,面向文档存储的非关系型数据库。是非关系型数据库当中功能最丰富、最像关系数据库的,它的特点是高性能、易部署、易使用,存储数据非常方便,扩展能力强。

MongoDB中使用skip-limit方法进行数据分页。这种数据分页方法在数据量和并发访问用户较小时,分页响应速度问题不大,但是当数据量很大时,skip操作会变的很慢。skip-limit方法的具体操作,首先按照查询条件使用find函数(对于当前数据库中的某个集合进行数据查找,可包含查询条件)返回结果集,然后使用基于偏移量的方法使用skip函数(限制返回记录的起点)跳过部分数据从而找到用户要求显示页面的首记录位置,最后,使用限制显示记录数量的limit函数(限制目标记录数量)获取该页面的数据。其通用公式为:db.collection.find({A}).skip((n-1)*N).limit(N),其中A代表查询条件,n代表页数,N代表一页的数据量,传统方式就是使用limit并结合skip实现数据的分页显示。

这种方式在小数据量下很不错,但数据量一大,页面数据获取速度就非常慢,通过explain(用来查看查询的过程的一个命令)查询解析命令得出nscanned(表明当前这次查询一共扫描了集合中多少个文档)扫描的记录数接近于目标结果集的记录数,例如要获取一个100万数据的集合里的第999000~999100这100条数据,那么Mongodb会扫描999100条记录,导致性能急剧下降。在海量数据下,当实际要读取的数据在排序的数据集后面时,skip的数量会很大,有时可以达到几万、十几万,遇到这样skip数量的査询,仍使用skip函数,速度会很慢。所以有必要对MongoDB分页技术进行改进和优化,使其在海量数据查询和最终用户体验方面表现的更好。

发明内容

本发明的目的在于克服现有技术的不足,提供一种通过索引直接定位到查询页面的上一个数据的关键字,然后利用where函数和limit函数实现数据的查找和定位,不用遍历所有的数据,快速获取用户访问的数据的基于MongoDB的数据分页优化方法。

本发明的目的是通过以下技术方案来实现的:一种基于MongoDB的数据分页优化方法,包括以下步骤:

S1、查询符合用户请求条件的数据的关键字,将查询到的关键字按照分页排序的顺序排列并为每个关键字建立索引,然后将关键字按照排序结果依次存储到数组中;

S2、根据数组长度和每页显示的数据数量计算符合用户请求条件的数据总页数,并默认显示数据的第一页;

S3、根据关键字的索引查询用户请求访问数据所在的页数,然后显示该页数据,或者直接打开用户请求访问的数据页。

进一步地,步骤S3具体实现方法为:采用where-limit算法,具体包括以下子步骤:

S31、将关键字的数据偏移量作为数组下标,通过页码和数组下标的对应关系查询用户请求访问数据页的前一页的最后一条数据的关键词,并利用该关键词的数据标记构建新的查询;

S32、根据S31构建的新的查询,利用where函数进行查询;

S33、利用limit函数,从where函数的查询结果中选取前N项数据,并从这N项数据中选取一页数据进行显示。

进一步地,关键词的数据标记为关键词字的数据偏移量。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都康赛信息技术有限公司,未经成都康赛信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201610080695.8/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top