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

文档序号:33045829发布日期:2023-01-24 22:27阅读:21来源:国知局
一种基于主键索引应用的附加条件数据查询方法及系统与流程

1.本发明涉及数据库管理及数据查询技术领域,尤其涉及一种基于主键索引应用的附加条件数据查询方法及系统。


背景技术:

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


技术实现要素:

7.为解决现有技术的不足,本发明提出一种基于主键索引应用的附加条件数据查询方法及系统,利用数据库的主键索引在查询数据时能快速直接的定位到其所代表数据在数据库中位置的特性,通过应用数据库主键索引作为标定缩小数据查询具体执行范围,在查询单表大数据量的情况下本发明可以显著的提高查询效率。
8.为实现以上目的,本发明所采用的技术方案包括:
9.一种基于主键索引应用的附加条件数据查询方法,其特征在于,包括:
10.s1、获取条件查询请求,提取条件查询请求中的数据查询条件集合;
11.s2、判断数据查询条件集合中是否包含对应主键索引的数据查询条件,当判断数据查询条件集合中包含对应主键索引的数据查询条件时,使用对应主键索引的数据查询条件执行第一查询操作,获得第一查询结果,所述第一查询操作包括使用对应主键索引的数
据查询条件获取对应数据主键的标记最小值和标记最大值;
12.s3、当判断数据查询条件集合中不包含对应主键索引的数据查询条件时,使用数据查询条件集合中的一个或多个数据查询条件执行第二查询操作,获得第一查询结果,所述第二查询操作包括使用数据查询条件查询获取对应数据主键的标记最小值和标记最大值;
13.s4、将第一查询结果作为附加查询条件加入原数据查询条件集合,形成附加条件集合;
14.s5、使用附加条件集合编辑生成数据查询语句,使用数据查询语句执行第三查询操作,获取第二查询结果并反馈条件查询请求。
15.进一步地,所述数据查询语句包括使用标记最小值、标记最大值和预设查询步进组成的查询范围限定条件。
16.进一步地,所述第三查询操作包括:
17.依据查询范围限定条件对数据库循环执行查询,直至对数据主键为标记最小值和标记最大值之间的所有数据完成查询,获取第二查询结果。
18.进一步地,所述依据查询范围限定条件对数据库循环执行查询包括:
19.依据当前查询范围限定条件执行查询操作;
20.判断查询范围限定条件是否达到标记最大值;
21.当判断查询范围限定条件未达到标记最大值时,更新查询范围限定条件,重新执行查询操作;
22.当判断查询范围限定条件达到标记最大值时,停止执行查询操作,生成第二查询结果。
23.进一步地,所述步骤s3包括:
24.使用数据查询条件集合中的所有数据查询条件执行第二查询操作。
25.进一步地,所述方法还包括:
26.将第二查询结果转化为java实体对象反馈条件查询请求。
27.本发明还涉及一种基于主键索引应用的附加条件数据查询系统,其特征在于,包括:
28.查询条件管理模块,用于提取条件查询请求中的数据查询条件集合,以及将第一查询结果作为附加查询条件加入原数据查询条件集合,形成附加条件集合;
29.主键判断模块,用于判断数据查询条件集合中是否包含对应主键索引的数据查询条件;
30.查询执行模块,用于使用对应主键索引的数据查询条件执行第一查询操作,和/或,使用数据查询条件集合中的一个或多个数据查询条件执行第二查询操作,和/或,使用数据查询语句执行第三查询操作。
31.本发明还涉及一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。
32.本发明还涉及一种电子设备,其特征在于,包括处理器和存储器;
33.所述存储器,用于存储数据查询条件集合、第一查询结果和附加条件集合;
34.所述处理器,用于通过调用数据查询条件集合、第一查询结果和附加条件集合,执
from bills where bill_date=“20220830”and status=“s”。
49.不同于第一查询操作,第二查询操作是一种通过数据查询条件获取最终数据信息之间的中间查询处理过程,即通过现有的数据查询条件直接查询对应数据主键(例如数据id)的边界范围,从而排除掉不满足条件的无关数据,减少后续具体查询操作对应的数据量。由此,在所获得的数据主键范围内作为必要的查询范围,不需要像limit n m工作方式那样先读取符合where条件的前面n+m条记录,然后抛弃前n条返回后面m条,能够显著提升查询效率。
50.s4、将第一查询结果作为附加查询条件加入原数据查询条件集合,形成附加条件集合。
51.第一查询操作与第二查询操作的执行目的是相同的,需要获得数据主键(例如数据id)的边界范围,例如max(id)和min(id),因此所获得的第一查询结果实质上具有相同的格式内容和性质。
52.s5、使用附加条件集合编辑生成数据查询语句,使用数据查询语句执行第三查询操作,获取第二查询结果并反馈条件查询请求。
53.具体的,数据查询语句包括使用标记最小值、标记最大值和预设查询步进组成的查询范围限定条件。在此基础上,第三查询操作包括依据查询范围限定条件对数据库循环执行查询,直至对数据主键为标记最小值和标记最大值之间的所有数据完成查询,获取第二查询结果。
54.执行时,将maxid和minid的范围分割,编辑sql追加sql的查询条件。增加分割后id的查询范围,形成的数据查询语句如:select*from bills where bill_date=“20220830”and status=“s”and id》=minid and id《minid+1000。
55.其中,所述依据查询范围限定条件对数据库循环执行查询包括:依据当前查询范围限定条件执行查询操作;判断查询范围限定条件是否达到标记最大值;当判断查询范围限定条件未达到标记最大值时,更新查询范围限定条件,重新执行查询操作;当判断查询范围限定条件达到标记最大值时,停止执行查询操作,生成第二查询结果。例如,循环往复不断更改minid的值(minid=minid+1000),不断的进行数据查询,直到minid+1000》maxid时需要将id《minid+1000改为maxid+1,即id《maxid+1进行最后一次查询,然后程序终止。
56.优选的,可以将第二查询结果转化为java实体对象反馈条件查询请求。
57.本发明另一方面还涉及一种基于主键索引应用的附加条件数据查询系统,其结构如图2所示,包括:
58.查询条件管理模块,用于提取条件查询请求中的数据查询条件集合,以及将第一查询结果作为附加查询条件加入原数据查询条件集合,形成附加条件集合;
59.主键判断模块,用于判断数据查询条件集合中是否包含对应主键索引的数据查询条件;
60.查询执行模块,用于使用对应主键索引的数据查询条件执行第一查询操作,和/或,使用数据查询条件集合中的一个或多个数据查询条件执行第二查询操作,和/或,使用数据查询语句执行第三查询操作。
61.通过使用该系统,能够执行上述的运算处理方法并实现对应的技术效果。
62.本发明的实施例还提供能够实现上述实施例中的方法中全部步骤的一种计算机
可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的方法的全部步骤。
63.本发明的实施例还提供一种用于执行上述方法的电子设备,作为该方法的实现装置,所述电子设备至少具备有处理器和存储器,特别是该存储器上存储有执行方法所需的数据和相关的计算机程序,例如数据查询条件集合、第一查询结果和附加条件集合等,并通过由处理器调用存储器中的数据、程序执行实现方法的全部步骤,并获得对应的技术效果。
64.优选的,该电子设备可以包含有总线架构,总线可以包括任意数量的互联的总线和桥,总线将包括由一个或多个处理器和存储器的各种电路链接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和接收器和发送器之间提供接口。接收器和发送器可以是同一个元件,即收发机,提供用于在传输介质上与各种其他系统通信的单元。处理器负责管理总线和通常的处理,而存储器可以被用于存储处理器在执行操作时所使用的数据。
65.额外的,所述电子设备还可以进一步包括通信模块、输入单元、音频处理器、显示器、电源等部件。其所采用的处理器(或称为控制器、操作控件)可以包括微处理器或其他处理器装置和/或逻辑装置,该处理器接收输入并控制电子设备的各个部件的操作;存储器可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种,可储存上述有关的数据信息,此外还可存储执行有关信息的程序,并且处理器可执行该存储器存储的该程序,以实现信息存储或处理等;输入单元用于向处理器提供输入,例如可以为按键或触摸输入装置;电源用于向电子设备提供电力;显示器用于进行图像和文字等显示对象的显示,例如可为lcd显示器。通信模块即为经由天线发送和接收信号的发送机/接收机。通信模块(发送机/接收机)耦合到处理器,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)还经由音频处理器耦合到扬声器和麦克风,以经由扬声器提供音频输出,并接收来自麦克风的音频输入,从而实现通常的电信功能。音频处理器可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器还耦合到中央处理器,从而使得可以通过麦克风能够在本机上录音,且使得可以通过扬声器来播放本机上存储的声音。
66.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
67.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。
68.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
69.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
70.以上所述仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换等都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1