[发明专利]一种基于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项数据中选取一页数据进行显示。
进一步地,关键词的数据标记为关键词字的数据偏移量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都康赛信息技术有限公司,未经成都康赛信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610080695.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种图片处理方法及电子设备
- 下一篇:思维导图的处理方法、服务器和客户端
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置