一种基于主键索引应用的附加条件数据查询方法及系统技术方案

技术编号:36453929 阅读:12 留言:0更新日期:2023-01-25 22:51
本发明专利技术涉及一种基于主键索引应用的附加条件数据查询方法及系统,优先使用对应主键索引的数据查询条件执行查询或使用其他非主键查询条件优先获取对应的主键索引信息,利用数据库的主键索引在查询数据时能快速直接的定位到其所代表数据在数据库中位置的特性,通过应用数据库主键索引作为标定缩小数据查询具体执行范围,在查询单表大数据量的情况下本发明专利技术可以显著的提高查询效率。明可以显著的提高查询效率。明可以显著的提高查询效率。

【技术实现步骤摘要】
一种基于主键索引应用的附加条件数据查询方法及系统


[0001]本专利技术涉及数据库管理及数据查询
,尤其涉及一种基于主键索引应用的附加条件数据查询方法及系统。

技术介绍

[0002]数据库是广泛使用的数据信息保存方式。对于一些特定应用领域,如金融交易数据的保存使用,其所涉及的单表数据量较大(百万到千万级别),同时又存在有快速遍历符合条件数据的特殊需求。例如,对于常规必须的交易对账使用场景,通常需要将前一交易日的交易数据分别按照渠道、日期、状态等不同条件遍历查询筛选,以便获取到所需的对账数据。
[0003]对于此类需求,需要针对数据库中符合条件的数据在系统执行查询操作,现有技术通常采用已有开源的分页组件进行数据库查询。
[0004]具体的,其底层原理是应用sql进行数据库查询,通过sql添加where条件且进行order by排序后执行limit n m(此处n表示查询数据的起始位置,设置初始值为0,m表示查询的数据条数)。当进行下一批数据查询时,需要对应更改limit后面n的值为n=n+m,即更改为执行limit n+m m。如此循环往复不断更改n的值进行多次查询,直到把符合条件的数据取尽,反馈查询结果。
[0005]上述方案会随着表中数据量增大查询效率逐渐降低,特别是遇到千万级别的大数据量时,查询效率会变得非常慢,主要原因包括:order by需求根据某种条件进行全局排序,增加sql的执行耗时;MySQL数据库中limit n m的工作原理就是先读取符合where条件的前面n+m条记录,然后抛弃前n条返回后面m条,所以n越大偏移量越大,性能就越差。随着limit n m中n的值逐步变大sql执行的效率会逐步降低。
[0006]由此可知,现有技术在应对大数据量的条件查询时存在执行效率低的技术问题,导致特定应用场景下数据查询成为限制数据具体应用效率提升的瓶颈。

技术实现思路

[0007]为解决现有技术的不足,本专利技术提出一种基于主键索引应用的附加条件数据查询方法及系统,利用数据库的主键索引在查询数据时能快速直接的定位到其所代表数据在数据库中位置的特性,通过应用数据库主键索引作为标定缩小数据查询具体执行范围,在查询单表大数据量的情况下本专利技术可以显著的提高查询效率。
[0008]为实现以上目的,本专利技术所采用的技术方案包括:
[0009]一种基于主键索引应用的附加条件数据查询方法,其特征在于,包括:
[0010]S1、获取条件查询请求,提取条件查询请求中的数据查询条件集合;
[0011]S2、判断数据查询条件集合中是否包含对应主键索引的数据查询条件,当判断数据查询条件集合中包含对应主键索引的数据查询条件时,使用对应主键索引的数据查询条件执行第一查询操作,获得第一查询结果,所述第一查询操作包括使用对应主键索引的数
据查询条件获取对应数据主键的标记最小值和标记最大值;
[0012]S3、当判断数据查询条件集合中不包含对应主键索引的数据查询条件时,使用数据查询条件集合中的一个或多个数据查询条件执行第二查询操作,获得第一查询结果,所述第二查询操作包括使用数据查询条件查询获取对应数据主键的标记最小值和标记最大值;
[0013]S4、将第一查询结果作为附加查询条件加入原数据查询条件集合,形成附加条件集合;
[0014]S5、使用附加条件集合编辑生成数据查询语句,使用数据查询语句执行第三查询操作,获取第二查询结果并反馈条件查询请求。
[0015]进一步地,所述数据查询语句包括使用标记最小值、标记最大值和预设查询步进组成的查询范围限定条件。
[0016]进一步地,所述第三查询操作包括:
[0017]依据查询范围限定条件对数据库循环执行查询,直至对数据主键为标记最小值和标记最大值之间的所有数据完成查询,获取第二查询结果。
[0018]进一步地,所述依据查询范围限定条件对数据库循环执行查询包括:
[0019]依据当前查询范围限定条件执行查询操作;
[0020]判断查询范围限定条件是否达到标记最大值;
[0021]当判断查询范围限定条件未达到标记最大值时,更新查询范围限定条件,重新执行查询操作;
[0022]当判断查询范围限定条件达到标记最大值时,停止执行查询操作,生成第二查询结果。
[0023]进一步地,所述步骤S3包括:
[0024]使用数据查询条件集合中的所有数据查询条件执行第二查询操作。
[0025]进一步地,所述方法还包括:
[0026]将第二查询结果转化为java实体对象反馈条件查询请求。
[0027]本专利技术还涉及一种基于主键索引应用的附加条件数据查询系统,其特征在于,包括:
[0028]查询条件管理模块,用于提取条件查询请求中的数据查询条件集合,以及将第一查询结果作为附加查询条件加入原数据查询条件集合,形成附加条件集合;
[0029]主键判断模块,用于判断数据查询条件集合中是否包含对应主键索引的数据查询条件;
[0030]查询执行模块,用于使用对应主键索引的数据查询条件执行第一查询操作,和/或,使用数据查询条件集合中的一个或多个数据查询条件执行第二查询操作,和/或,使用数据查询语句执行第三查询操作。
[0031]本专利技术还涉及一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。
[0032]本专利技术还涉及一种电子设备,其特征在于,包括处理器和存储器;
[0033]所述存储器,用于存储数据查询条件集合、第一查询结果和附加条件集合;
[0034]所述处理器,用于通过调用数据查询条件集合、第一查询结果和附加条件集合,执
from bills where bill_date=“20220830”and status=“S”。
[0049]不同于第一查询操作,第二查询操作是一种通过数据查询条件获取最终数据信息之间的中间查询处理过程,即通过现有的数据查询条件直接查询对应数据主键(例如数据id)的边界范围,从而排除掉不满足条件的无关数据,减少后续具体查询操作对应的数据量。由此,在所获得的数据主键范围内作为必要的查询范围,不需要像limit n m工作方式那样先读取符合where条件的前面n+m条记录,然后抛弃前n条返回后面m条,能够显著提升查询效率。
[0050]S4、将第一查询结果作为附加查询条件加入原数据查询条件集合,形成附加条件集合。
[0051]第一查询操作与第二查询操作的执行目的是相同的,需要获得数据主键(例如数据id)的边界范围,例如MAX(id)和MIN(id),因此所获得的第一查询结果实质上具有相同的格式内容和性质。
[0052]S5、使用附加条件集合编辑生成数据查询语句,使用数据查询语句执行第三查询操作,获取第二查询结果并反馈条件查询请求。
[0053]具体的,数据查询语句包括使用标记最小值本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于主键索引应用的附加条件数据查询方法,其特征在于,包括:S1、获取条件查询请求,提取条件查询请求中的数据查询条件集合;S2、判断数据查询条件集合中是否包含对应主键索引的数据查询条件,当判断数据查询条件集合中包含对应主键索引的数据查询条件时,使用对应主键索引的数据查询条件执行第一查询操作,获得第一查询结果,所述第一查询操作包括使用对应主键索引的数据查询条件获取对应数据主键的标记最小值和标记最大值;S3、当判断数据查询条件集合中不包含对应主键索引的数据查询条件时,使用数据查询条件集合中的一个或多个数据查询条件执行第二查询操作,获得第一查询结果,所述第二查询操作包括使用数据查询条件查询获取对应数据主键的标记最小值和标记最大值;S4、将第一查询结果作为附加查询条件加入原数据查询条件集合,形成附加条件集合;S5、使用附加条件集合编辑生成数据查询语句,使用数据查询语句执行第三查询操作,获取第二查询结果并反馈条件查询请求。2.如权利要求1所述的方法,其特征在于,所述数据查询语句包括使用标记最小值、标记最大值和预设查询步进组成的查询范围限定条件。3.如权利要求2所述的方法,其特征在于,所述第三查询操作包括:依据查询范围限定条件对数据库循环执行查询,直至对数据主键为标记最小值和标记最大值之间的所有数据完成查询,获取第二查询结果。4.如权利要求3所述的方法,其特征在于,所述依据查询范围限定条件对数据库循环执行查询包括:依据当前查询范围限定条件执行查询操作;判断查询范围限定条件是否达到标记最大值;当判断查询范围限定条件未达到标记最...

【专利技术属性】
技术研发人员:杨振伟
申请(专利权)人:中信百信银行股份有限公司
类型:发明
国别省市:

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

1