分表分页排序查询方法及装置制造方法及图纸

技术编号:14971901 阅读:82 留言:0更新日期:2017-04-03 00:21
本发明专利技术适用于数据查询技术领域,提供了一种分表分页排序查询方法及装置,所述方法包括如下步骤:通过预设的查询参数和分表规则计算得到分表二维数组;所述分表二维数组的一维数组为同一查询参数值对应的多个分表;根据预设的数据结构和所述查询参数为所述分表二级数组建立本次查询的查询结果集的索引表;所述数据结构包括查询参数、所述查询参数对应的一维数组内每一分表的序号和行数;当需要调取所述索引表内待查询页的数据时,根据所述索引表定位该待查询页的数据所在的一组或多组分表;调取所述一组或多组分表的数据,并显示。

【技术实现步骤摘要】

本专利技术属于数据查询
,尤其涉及一种分表分页排序查询方法及装置
技术介绍
目前分表分页最好的解决技术是计算得出符合查询条件的N张表并分别查询每张表中满足条件的记录数,之后,根据请求页和请求页的记录数,定位到请求页所在的表和该表中记录所处的位置,再根据表和记录所处的位置查询数据库获取相应的记录,最后返回结果至应用层,在数据访问层访问数据库之前与处理完结果后都访问缓存区域,读取或保存相应数据,通过分层分页查询,提高了数据库资源的有效利用,缓解了数据库系统的压力。但上述解决技术有一个问题,其每次查询都要查所有的分表记录数据,不能对所有的分表进行排序,并按排序后的结果进行分页处理,且不能对多个分联进行联合查询。
技术实现思路
本专利技术实施例的目的在于提供一种分表分页排序查询方法及装置,旨在解决现有技术无法对数据的查询结果集进行排序显示的问题。本专利技术实施例是这样实现的,一种分表分页排序查询方法,所述方法包括如下步骤:通过预设的查询参数和分表规则计算得到分表二维数组;所述分表二维数组的一维数组为同一查询参数值对应的多个分表;根据预设的数据结构和所述查询参数为所述分表二级数组建立本次查询的查询结果集的索引表;所述数据结构包括查询参数、所述查询参数对应的一维数组内每一分表的序号和行数;当需要调取所述索引表内待查询页的数据时,根据所述索引表定位该待查询页的数据所在的一组或多组分表;调取所述一组或多组分表的数据,并显示。进一步地,所述根据预设的数据结构和查询参数为分表二级数组建立本次查询的查询结果集的索引表包括:遍历分表二维数组,取每一一维数组;创建HashMap,将每一查询参数值作为HashMap的Key,将所述一维数组中每一查询参数值对应的数据作为HashMap的Value,得到索引表。进一步地,所述HashMap的Value为一二维数组,第一行数据为同一查询参数值对应的数据在每一分表中的行数,第二行数据为该分表在分表二维数组中的下标值。进一步地,所述当需要调取索引表内待查询页的数据时,根据索引表定位该查询页的数据所在的一组或多组分表包括:根据所述待查询页的序号和行数,计算所述待查询页的数据所在分表在所述索引表的位置;根据所述待查询页的数据所在分表在所述索引表的位置,获取索引表中待查询页的数据所在分表的下标值和所述数据在该分表内的行数。本专利技术还提出一种分表分布排序查询的装置,所述装置包括:计算模块,用于通过预设的查询参数和分表规则计算得到分表二维数组;所述分表二维数组的一维数组为同一查询参数值对应的多个分表;建立索引模块,用于根据预设的数据结构和所述查询参数为所述分表二级数组建立本次查询的查询结果集的索引表;所述数据结构包括查询参数、所述查询参数对应的一维数组内每一分表的序号和行数;定位模块,用于当需要调取所述索引表内待查询页的数据时,根据所述索引表定位该待查询页的数据所在的一组或多组分表;显示模块,用于调取所述一组或多组分表的数据,并显示。进一步地,所述建立索引模块包括:取数单元,用于遍历分表二维数组,取每一一维数组;创建HashMap单元,用于创建HashMap,将每一查询参数值作为HashMap的Key,将所述一维数组中每一查询参数值对应的数据作为HashMap的Value,得到索引表。进一步地,所述HashMap的Value为一二维数组,第一行数据为同一查询参数值对应的数据在每一分表中的行数,第二行数据为该分表在分表二维数组中的下标值。进一步地,所述定位模块包括:计算单元,用于根据所述待查询页的序号和行数,计算所述待查询页的数据所在分表在所述索引表的位置;获取单元,用于根据所述待查询页的数据所在分表在所述索引表的位置,获取索引表中待查询页的数据所在分表的下标值和所述数据在该分表内的行数。本专利技术实施例可对查询结果集进行排序显示,解决了任何一种分表、排序、分页查询的问题,作为排序列可以是任何的查询参数,不受限制,分表的规则也不受限制,因此采用排序索引查询结果集定位每一组分表分页数据,速度快,索引数据结构精简,占用内存少,通过缓存保存索引数据,大大减少了数据库的查询。本专利技术实施例可以封装在一起,能用一行代码处理完所有的功能。附图说明图1是本专利技术实施例一提供的分表分页排序查询方法的流程图;图2是本专利技术实施例一提供的分表分页排序查询方法中索引表的示意图;图3是本专利技术实施例二提供的分表分页排序查询装置的结构图;图4是本专利技术实施例二提供的分表分页排序查询装置中建立索引模块的结构图;图5是本专利技术实施例二提供的分表分页排序查询装置中定位模块的结构图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。实施例一本专利技术实施例一提供一种分表分页排序查询方法,如图1所示,本专利技术实施例一的方法包括步骤:S1、通过预设的查询参数和分表规则计算得到分表二维数组;分表二维数组的一维数组为同一查询参数值对应的多个分表。上述预设的查询参数可以根据需要进行设置,在实际应用中可能是餐饮类的价格、菜品等。通过查询参数和分表规则计算出所有的多组分表,分别存放于二维数组中,本专利技术实施例一将该二维数组称为分表二维数组,分表二维数组的一维数据存储同一次查询所关联的分表。S2、根据预设的数据结构和查询参数为分表二级数组建立本次查询的查询结果集的索引表;数据结构包括查询参数、所述查询参数对应的一维数组内每一分表的序号和行数。具体地,遍历分表二维数组,取得每一个一维数组,将一维数组中的每个分表替换分组SQL中对应的原始表,并在此分组SQL上加排序和分组的功能即Orderby和Groupby,分组和排序都是用同一列数据,该列数据称之为排序列,排序列的值为每一具体的查询参数值。如图2所示,设置一数据结构建立本次查询的查询结果集的索引表,可创建HashMap用于存放每组查询的合并后的索引数据。先创建一个保存总行数的变量,查询返回的数据是一个列表,包括查询参数值和查询参数值对应的二维数组两列数据。然后遍历这个列表,将每一行数据合并到HashMap中,即将查询参本文档来自技高网...

【技术保护点】
一种分表分页排序查询方法,其特征在于,所述方法包括如下步骤:通过预设的查询参数和分表规则计算得到分表二维数组;所述分表二维数组的一维数组为同一查询参数值对应的多个分表;根据预设的数据结构和所述查询参数为所述分表二级数组建立本次查询的查询结果集的索引表;所述数据结构包括查询参数、所述查询参数对应的一维数组内每一分表的序号和行数;当需要调取所述索引表内待查询页的数据时,根据所述索引表定位该待查询页的数据所在的一组或多组分表;调取所述一组或多组分表的数据,并显示。

【技术特征摘要】
1.一种分表分页排序查询方法,其特征在于,所述方法包括如
下步骤:
通过预设的查询参数和分表规则计算得到分表二维数组;所述分
表二维数组的一维数组为同一查询参数值对应的多个分表;
根据预设的数据结构和所述查询参数为所述分表二级数组建立
本次查询的查询结果集的索引表;所述数据结构包括查询参数、所述
查询参数对应的一维数组内每一分表的序号和行数;
当需要调取所述索引表内待查询页的数据时,根据所述索引表定
位该待查询页的数据所在的一组或多组分表;
调取所述一组或多组分表的数据,并显示。
2.如权利要求1所述的方法,其特征在于,所述根据预设的数
据结构和查询参数为分表二级数组建立本次查询的查询结果集的索
引表包括:
遍历分表二维数组,取每一一维数组;
创建HashMap,将每一查询参数值作为HashMap的Key,将所
述一维数组中每一查询参数值对应的数据作为HashMap的Value,得
到索引表。
3.如权利要求2所述的方法,所述HashMap的Value为一二维

\t数组,第一行数据为同一查询参数值对应的数据在每一分表中的行
数,第二行数据为该分表在分表二维数组中的下标值。
4.如权利要求3所述的方法,其特征在于,所述当需要调取索
引表内待查询页的数据时,根据索引表定位该查询页的数据所在的一
组或多组分表包括:
根据所述待查询页的序号和行数,计算所述待查询页的数据所在
分表在所述索引表的位置;
根据所述待查询页的数据所在分表在所述索引表的位置,获取索
引表中待查询页的数据所在分表的下标值和所述数据在该分表内的

【专利技术属性】
技术研发人员:梁文
申请(专利权)人:深圳市汇朗科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1