CN114238328A - 数据分页查询方法、装置、设备及存储介质 - Google Patents
数据分页查询方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114238328A CN114238328A CN202111534815.4A CN202111534815A CN114238328A CN 114238328 A CN114238328 A CN 114238328A CN 202111534815 A CN202111534815 A CN 202111534815A CN 114238328 A CN114238328 A CN 114238328A
- Authority
- CN
- China
- Prior art keywords
- query
- data
- condition
- field
- paging
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及大数据技术领域,公开了一种数据分页查询方法、装置、设备及存储介质,用于避免在数据查询过程中出现查询结果不准确或查询效率低的问题,提高了数据查询的准确性和效率,从而节约了人力成本和运算资源。上述方法包括:获取查询范围条件,从数据库中获取符合查询范围条件的数据集;获取数据查询条件,确定数据查询条件是否符合预设的条件规则;其中,条件规则包括:数据查询条件中查询字段的变化属性,和/或数据查询条件中查询字段的索引区分度;如果数据查询条件符合条件规则,基于数据查询条件在数据集中进行分页查询,得到符合数据查询条件的查询结果。
Description
技术领域
本发明涉及大数据处理领域,尤其涉及一种数据分页查询方法、装置、设备及存储介质。
背景技术
数据分页查询,是一种操作系统里存储器管理技术,可以允许电脑的主存使用存储在辅助存储器中的数据。操作系统将磁盘等辅助存储器中的数据分区成固定大小的区块,这些区块称为“页”。当不需要该页数据时,将该页数据由内存等主存移到辅助存储器;当需要该页数据时,再将数据取回,加载至主存中。数据分页查询允许存储器存储于不连续的区块以维持文件系统的整齐。
相关技术中,可以通过MyBatis的PageHelper,或其他数据分页的插件或工具实现数据库分页查询操作,但这些工具提供的功能有限,在数据库分页数据处理过程中,还需要数据处理人员根据个人经验手动设置查询条件,如果查询条件设置的不合理,容易引起各类问题。例如,引起数据跳读的问题,进而使数据查询结果不准确;再如,还容易引起读取大量冷数据的问题,导致查询效率低的问题。数据处理人员还需要逐一解决上述问题,导致消耗大量的人力成本和运算资源。
发明内容
本发明提供了一种数据分页查询方法、装置、设备及存储介质,用于避免在数据查询过程中出现查询结果不准确或查询效率低的问题,提高数据查询的准确性和效率,从而节约人力成本和运算资源。
为实现上述目的,本发明第一方面提供了一种数据分页查询方法,该数据分页查询方法包括:获取查询范围条件,从数据库中获取符合查询范围条件的数据集;获取数据查询条件,确定数据查询条件是否符合预设的条件规则;其中,条件规则包括:数据查询条件中查询字段的变化属性,和/或数据查询条件中查询字段的索引区分度;如果数据查询条件符合条件规则,基于数据查询条件在数据集中进行分页查询,得到符合数据查询条件的查询结果。
可选的,在本发明第一方面的第一种实现方式中,上述确定数据查询条件是否符合预设的条件规则的步骤,包括:从数据查询条件中提取查询字段;针对每个查询字段,确定查询字段是否属于变化字段;其中,变化字段对应的字段内容在指定的时间范围内具有发生变化的概率;如果数据查询条件中存在属于变化字段的查询字段,确定数据查询条件不符合预设的条件规则。
可选的,在本发明第一方面的第二种实现方式中,上述确定数据查询条件是否符合预设的条件规则的步骤,包括:从数据查询条件中提取查询字段;针对每个查询字段,获取查询字段的索引区分度,确定索引区分度是否大于预设的区分度阈值;如果数据查询条件中存在引区分度小于区分度阈值的查询字段,确定数据查询条件不符合预设的条件规则。
可选的,在本发明第一方面的第三种实现方式中,上述如果数据查询条件符合条件规则,基于数据查询条件在数据集中进行分页查询,得到符合数据查询条件的查询结果的步骤,包括:如果数据查询条件符合条件规则,基于数据查询条件在数据集中进行分页查询,得到初始查询结果;其中,初始查询结果包括至少一页数据;获取排序字段,针对每页数据,基于排序字段对页数据进行排序;其中,如果排序字段包括单一字段,任意两条数据中,排序字段的字段内容不同;如果排序字段包括多个字段,任意两条数据中,多个字段的字段内容组合不同;将排序后的每页数据确定为最终查询结果。
可选的,在本发明第一方面的第四种实现方式中,上述如果数据查询条件符合条件规则,基于数据查询条件在数据集中进行分页查询,得到符合数据查询条件的查询结果的步骤之后,方法还包括:获取目标系统的实时流量;目标系统用于接收查询结果;根据实时流量以及预设的限流规则,将查询结果发送至目标系统;其中,限流规则包括吞吐量阈值、并发量阈值和每秒查询率阈值中的一种或多种。
可选的,在本发明第一方面的第五种实现方式中,上述根据实时流量以及预设的限流规则,将查询结果发送至目标系统的步骤,包括:确定实时流量是否高于预设流量阈值;如果实时流量高于预设流量阈值,根据限流规则中的吞吐量阈值,确定发送查询结果时,单位时间内的数据发送量;按照单位时间内的数据发送量,将查询结果发送至目标系统,以使目标系统的吞吐量小于或等于吞吐量阈值。
可选的,在本发明第一方面的第六种实现方式中,上述查询范围条件包括时间阈值和分页范围阈值;从数据库中获取符合查询范围条件的数据集的步骤,包括:从数据库中获取数据生成时间晚于时间阈值的数据,得到初始数据;从初始数据中获取数据分页大小属于分页范围阈值的数据,得到数据集。
本发明第二方面提供了一种数据分页查询装置,数据分页查询装置包括:数据集获取模块,用于获取查询范围条件,从数据库中获取符合查询范围条件的数据集;判断模块,用于获取数据查询条件,确定数据查询条件是否符合预设的条件规则;其中,条件规则包括:数据查询条件中查询字段的变化属性,和/或数据查询条件中查询字段的索引区分度;分页查询模块,用于如果数据查询条件符合条件规则,基于数据查询条件在数据集中进行分页查询,得到符合数据查询条件的查询结果。
可选的,在本发明第二方面的第一种实现方式中,上述判断模块,还用于:从数据查询条件中提取查询字段;针对每个查询字段,确定查询字段是否属于变化字段;其中,变化字段对应的字段内容在指定的时间范围内具有发生变化的概率;如果数据查询条件中存在属于变化字段的查询字段,确定数据查询条件不符合预设的条件规则。
可选的,在本发明第二方面的第二种实现方式中,上述判断模块,还用于:从数据查询条件中提取查询字段;针对每个查询字段,获取查询字段的索引区分度,确定索引区分度是否大于预设的区分度阈值;如果数据查询条件中存在引区分度小于区分度阈值的查询字段,确定数据查询条件不符合预设的条件规则。
可选的,在本发明第二方面的第三种实现方式中,上述分页查询模块,还用于:如果数据查询条件符合条件规则,基于数据查询条件在数据集中进行分页查询,得到初始查询结果;其中,初始查询结果包括至少一页数据;获取排序字段,针对每页数据,基于排序字段对页数据进行排序;其中,如果排序字段包括单一字段,任意两条数据中,排序字段的字段内容不同;如果排序字段包括多个字段,任意两条数据中,多个字段的字段内容组合不同;将排序后的每页数据确定为最终查询结果。
可选的,在本发明第二方面的第四种实现方式中,上述装置还包括限流模块,用于获取目标系统的实时流量;目标系统用于接收查询结果;根据实时流量以及预设的限流规则,将查询结果发送至目标系统;其中,限流规则包括吞吐量阈值、并发量阈值和每秒查询率阈值中的一种或多种。
可选的,在本发明第二方面的第五种实现方式中,上述限流模块还用于:确定实时流量是否高于预设流量阈值;如果实时流量高于预设流量阈值,根据限流规则中的吞吐量阈值,确定发送查询结果时,单位时间内的数据发送量;按照单位时间内的数据发送量,将查询结果发送至目标系统,以使目标系统的吞吐量小于或等于吞吐量阈值。
可选的,在本发明第二方面的第六种实现方式中,上述数据集获取模块还用于:从数据库中获取数据生成时间晚于时间阈值的数据,得到初始数据;从初始数据中获取数据分页大小属于分页范围阈值的数据,得到数据集。
本发明第三方面提供了一种数据分页查询设备,数据分页查询设备包括:存储器和至少一个处理器,存储器中存储有指令;至少一个处理器调用存储器中的指令,以使得数据分页查询设备执行如上述数据分页查询方法。
本发明第四方面提供了一种计算机可读存储介质,其上存储有指令,指令被处理器执行时实现如上述数据分页查询方法。
本发明提供的技术方案中,获取查询范围条件,从数据库中获取符合查询范围条件的数据集;获取数据查询条件,确定数据查询条件是否符合预设的条件规则;其中,条件规则包括:数据查询条件中查询字段的变化属性,和/或数据查询条件中查询字段的索引区分度;如果数据查询条件符合条件规则,基于数据查询条件在数据集中进行分页查询,得到符合数据查询条件的查询结果。该方式中,通过设置条件规则,在数据查询之前先确定数据查询条件是否合理,进而再基于数据查询条件进行分页查询。该条件规则可以滤除掉较为不合理的数据查询条件,从而避免在数据查询过程中出现查询结果不准确或查询效率低的问题,提高了数据查询的准确性和效率,从而节约了人力成本和运算资源。
进一步的,本实施例中还设置了查询范围条件,在进行数据查询之前,先从数据库中获取较小范围的数据集,后续再基于该数据集进行数据查询。该方式可以进一步避免从数据库的冷数据中查询数据,进一步提高了数据查询效率。
附图说明
图1为本发明实施例中数据分页查询方法的一个实施例示意图;
图2为本发明实施例中数据分页查询方法的另一个实施例示意图;
图3为本发明实施例中数据分页查询装置的一个实施例示意图;
图4为本发明实施例中数据分页查询装置的另一个实施例示意图;
图5为本发明实施例中数据分页查询设备的一个实施例示意图。
具体实施方式
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
现有业内存在多种静态数据分页的插件或工具,常见项目中会使用到的是MyBatis的PageHelper,此类工具可以简化开发过程中对数据库分页查询操作,内部封装好了分页查询的起始位置和查询条件,极大提升了研发效率。
但是,现有的分页工具仅具有简化查询的功能,在整个分页数据处理过程中,工作人员需要考虑诸多因素,例如,查询条件的选择、数据的排序、查询的性能、分页查询处理数据时对上下游系统的压力、分页处理出现异常的自发现、后续处理或补偿措施等;这些因素缺少合适的标准或者规范,导致在生产代码执行时或多或少会出现一些问题,例如,引起数据跳读的问题,进而使数据查询结果不准确;再如,还容易引起读取大量冷数据的问题,导致查询效率低的问题。数据处理人员还需要逐一解决上述问题,导致消耗大量的人力成本和运算资源。
基于上述问题,本实施例提供一种数据分页查询方法、装置、设备和存储介质,该技术可以应用于数据库、数据查询系统或其他数据系统、应用系统中的数据查询场景中。
上述数据分页查询方法可以应用于服务器。该服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中数据分页查询方法的一个实施例包括:
步骤S101,获取查询范围条件,从数据库中获取符合查询范围条件的数据集;
当数据库中存储的数据量非常大时,如果直接基于数据查询条件在数据库中查询,将会非常耗时,查询效率特别慢。为了避免该问题,在查询数据之前,通常需要从数据库中先划定一范围。基于此,在上述步骤中,可以预先设置查询范围条件,该查询范围条件可以是时间条件、分页条件、存储区域条件等,通过该查询范围条件,从数据库中获取数据集。一个具体的示例中,该查询范围条件中可以包括时间条件和分页大小条件,通过这些条件,可以从数据库中获取经常本访问或新增的数据,从而过滤到访问频率较低的数据,也可以称为冷数据。
步骤S102,获取数据查询条件,确定数据查询条件是否符合预设的条件规则;其中,该条件规则包括:数据查询条件中查询字段的变化属性,和/或数据查询条件中查询字段的索引区分度;
上述数据查询条件通常由用户输入,数据查询条件大多基于用户的经验设置,当用户经验不足时,设置的数据查询条件缺乏合理性,在查询过程中引起数据跳读、查询效率低等各类问题。基于此,在本实施例中,设置了针对数据查询条件的条件规则,在基于数据查询条件查询数据之前,先确定数据查询条件是否复合该条件规则。
具体的,本实施例中的条件规则可以同时包括数据查询条件中查询字段的变化属性,和数据查询条件中查询字段的索引区分度;条件规则也可以仅包括数据查询条件中查询字段的变化属性,或数据查询条件中查询字段的索引区分度之一。其中,数据查询条件中查询字段的变化属性可以理解为,在数据的生命周期内,查询字段对应的字段内容是否发生变化。例如,查询字段为创建时间,当数据生成后,该创建时间对应的字段内容不再变化,此时,则认为该查询字段的变化属性为不变化。再如,查询字段为交易状态,当数据生成后,该交易状态对应的字段内容可能会随着时间的变化而变化,如,交易状态对应的字段内容可能为未交易、交易中和交易已完成,此时,则认为该查询字段的变化属性为变化。
上述数据查询条件中查询字段的索引区分度,主要用于提高查询效率,例如,当索引区分度较小时,可能会进行全表扫描,导致查询效率较低;当索引区分度较大时,就可以避免全表扫描,提高查询效率。基于此,在本实施例中,可以设置一个索引区分度的阈值,从而控制查询字段具有较大的索引区分度。其他方式中,通常,索引区分度和索引长度相关联,索引长度越长时,索引区分度也就越大,基于此,也可以设置一个索引长度的阈值,从而控制查询字段具有较长的索引长度,也就具有了较大的索引区分度。
实际实现时,如果数据库的字段有限,则可以预先设置每个字段的属性,该属性包括字段是否具有变化属性,该字段的索引区分度等。如果查询条件中包括字段A,则直接根据字段A的属性判断字段A是都符合条件规则。
步骤S103,如果数据查询条件符合条件规则,基于数据查询条件在数据集中进行分页查询,得到符合数据查询条件的查询结果。
当数据查询条件符合上述条件规则后,即可基于该数据查询条件在数据集中进行分页查询。由于符合条件规则的数据查询条件具有较高的合理性,因而也就避免了在数据查询过程中出现各类问题。得到数据查询结果后,可以对该查询结果进行其他数据分析处理,或者发送至其他系统中。
上述数据分页查询方法,获取查询范围条件,从数据库中获取符合查询范围条件的数据集;获取数据查询条件,确定数据查询条件是否符合预设的条件规则;其中,条件规则包括:数据查询条件中查询字段的变化属性,和/或数据查询条件中查询字段的索引区分度;如果数据查询条件符合条件规则,基于数据查询条件在数据集中进行分页查询,得到符合数据查询条件的查询结果。该方式中,通过设置条件规则,在数据查询之前先确定数据查询条件是否合理,进而再基于数据查询条件进行分页查询。该条件规则可以滤除掉较为不合理的数据查询条件,从而避免在数据查询过程中出现查询结果不准确或查询效率低的问题,提高了数据查询的准确性和效率,从而节约了人力成本和运算资源。
进一步的,本实施例中还设置了查询范围条件,在进行数据查询之前,先从数据库中获取较小范围的数据集,后续再基于该数据集进行数据查询。该方式可以进一步避免从数据库的冷数据中查询数据,进一步提高了数据查询效率。
为了进一步理解本实施例,请参阅图2,本发明实施例中的数据分页查询方法的另一个实施例包括:
步骤S201,从数据库中获取数据生成时间晚于时间阈值的数据,得到初始数据;从初始数据中获取数据分页大小属于分页范围阈值的数据,得到数据集。
在上述步骤中,上述查询范围条件包括时间阈值和分页范围阈值。在数据分页过程中,如果数据分页过小,一方面可以减小内存碎片,起到减少内存碎片总空间的作用,有利于内存利用率的提高,但另一个方面却会造成每个进程占用较多的页面,从而导致进程的页表过长,占用大量内存。此外,还会降低页面换进换出的效率。如果数据分页过大,可以减少页表的长度,提高页面换进换出的速度,但却又会使页内碎片增大。基于上述,可以根据数据库保存数据的属性,预先确定一个合理的分页大小。基于该分页大小获取数据集。
这里的分页范围阈值可以是一个分页最大值,也可以是一个分页最小值,或者同时包括分页最大值和分页最小值。分页范围阈值可以根据实际需求设置,从而使数据集中的数据具有合适的分页大小。按照预设的顺序,针对每个阈值对数据库中的数据进行筛选。具体的,基于时间阈值,仅获取数据生成时间晚于时间阈值的数据,生成时间较早的数据被筛选掉,从而过滤掉数据库中的冷数据,得到初始数据。从初始数据中,筛选掉不符合上述分页范围阈值的数据,得到上述数据集。
步骤S202,获取数据查询条件,从数据查询条件中提取查询字段;针对每个查询字段,确定查询字段是否属于变化字段;其中,该变化字段对应的字段内容在指定的时间范围内具有发生变化的概率;如果数据查询条件中存在属于变化字段的查询字段,确定数据查询条件不符合预设的条件规则。
上述变化字段具体可以为更新时间、交易状态等。这些字段在数据的生命周期内可能会发生变化。上述指定的时间范围可以理解为数据从生成至今的时间范围,也可以设置其他具体的时间范围。这里需要说明的是,变化字段的字段内容发生变化的时间可以是规律性的,也可以不是规律性的,例如,可能基于数据对应的实际业务发生变化;或者,变化字段的字段内容始终没有变化,但变化字段的字段内容仍然具有发生变化的可能性。
对于变化字段,如果变化字段的字段内容变更,在分页查询时,符合查询条件的数据总页数可能会发生变化,此时,就失去了分页查询的意义,很有可能出现跳读的问题,导致查询结果不准确。基于此,在上述步骤中,需要确定查询字段是否属于变化字段。
在实际实现时,如果数据查询条件中包括多个查询字段,需要针对每个查询字段确定是否属于变化字段。当每个查询字段均不属于变化字段时,可以认为数据查询条件符合上述条件规则。其他可行的实现方式中,对于对查询结果准确性要求较低的场景,可以设置为,如果数据查询条件中的一部分查询字段属于变化字段,另一部分查询字段不属于变化字段,也可以确定数据查询条件符合预设的条件规则;或者,如果数据查询条件中的一个查询字段不属于变化字段,就可以确定数据查询条件符合预设的条件规则;具体可以根据实际的查询需求设置。
步骤S203,从数据查询条件中提取查询字段;针对每个查询字段,获取查询字段的索引区分度,确定索引区分度是否大于预设的区分度阈值;如果数据查询条件中存在引区分度小于区分度阈值的查询字段,确定数据查询条件不符合预设的条件规则。
当查询字段的索引区分度较低时,可能会导致查询效率较低。因此,上述步骤针对每个查询字段,确定该查询字段的索引区分度是否大于上述区分度阈值。该索引区分度阈值可以根据实际的查询需求设置,当需要较高的查询效率时,该索引区分度阈值需要设置一个较大的数值,从而保证数据查询条件中的查询字段均具有较高的索引区分度。
其他可行的方式中,如果查询条件命中多个索引,可以从多个索引中指定索引,基于指定的索引进行查询;或者预先设置执行计划,基于该执行计算进行查询。该查询计划中具体可以包括从多个索引中指定索引的方式,或者多个索引的排列顺序,按照该排列顺序进行查询。
在实际实现时,如果数据查询条件中包括多个查询字段,需要针对每个查询字段,确定该查询字段的索引区分度是否大于预设的区分度阈值。当每个查询字段的索引区分度均大于区分度阈值时,可以认为数据查询条件符合上述条件规则。其他可行的实现方式中,对于对查询效率要求较低的场景,可以设置为,如果数据查询条件中的一部分查询字段的索引区分度大于区分度阈值,另一部分查询字段的索引区分度小于或等于区分度阈值,也可以确定数据查询条件符合预设的条件规则;或者,如果数据查询条件中的一个查询字段的索引区分度大于区分度阈值,就可以确定数据查询条件符合预设的条件规则。另外,还可以计算多个查询字段的平均索引区分度,如果该平均索引区分度大于区分度阈值,则可以确定数据查询条件符合预设的条件规则,具体可以根据实际的查询需求设置。
步骤S204,如果数据查询条件符合条件规则,基于数据查询条件在数据集中进行分页查询,得到初始查询结果;其中,该初始查询结果包括至少一页数据;获取排序字段,针对每页数据,基于排序字段对页数据进行排序;其中,如果排序字段包括单一字段,任意两条数据中,排序字段的字段内容不同;如果排序字段包括多个字段,任意两条数据中,多个字段的字段内容组合不同;将排序后的每页数据确定为最终查询结果。
为了保证查询结果的有序性,通过数据查询条件进行分页查询,得到初始查询结果后,需要对初始查询结果进行排序。为了保证查询效率,需要选择合理的排序字段。本实施例中,排序字段需要具有唯一性,具有唯一性的排序字段可以保证查询数据不出现错乱,也会提高查询效率。具体而言,如果排序字段包括单一字段,为了实现唯一性,任意两条数据中,排序字段的字段内容不同,例如,该排序字段可以为数据的ID号、数据对应的交易序号等等。再如,创建时间字段,当大量数据生成并入库时,数据的创建时间可能会相同,因此,创建时间字段通常不具有唯一性,不可以作为排序字段。
如果排序字段包括多个字段,任意两条数据中,多个字段的字段内容组合不同;作为示例,排序字段包括字段A和字段B,初始查询结果中,可能有两条数据的字段A的内容相同,也可能有两条数据的字段B的内容相同,不存在任意两条数据,字段A和字段B的内容均相同,从而实现多个排序字段的唯一性。字段是否具有唯一性,也可以体现在字段的属性中,基于每个字段的属性,确定该字段是否可以作为排序字段。
针对每页数据,基于上述排序字段进行排序,具体的,可以根据排序字段的字段内容,对数据进行升序或降序排序。在上述方式中,由于排序字段的字段内容具有唯一性,因而在排序过程中,数据具有相对明确的排列顺序,不会发生数据错乱,从而提高了查询结果的准确性和查询效率。
步骤S205,获取目标系统的实时流量;该目标系统用于接收查询结果;根据实时流量以及预设的限流规则,将查询结果发送至目标系统;其中,限流规则包括吞吐量阈值、并发量阈值和每秒查询率阈值中的一种或多种。
当上述查询结果的数据量较大时,发送该查询结果可能会对接收查询结果的目标系统的网络产生一定的压力和冲击。为了避免该问题,在上述步骤中,需要根据目标系统的实时流量状态,控制查询结果的发送速度。具体的,当目标系统相对空闲时,此时目标系统的实时流量较低,此时可以以较快的速度发送查询结果;当目标系统相对繁忙时,此时目标系统的实时流量较高,此时可以以较慢的速度发送查询结果,避免大量数据涌入目标系统,导致系统宕机。
上述吞吐量阈值具体可以用于控制目标系统在单位时间内接收并处理数据集的数据量。并发量阈值具体可以用于控制目标系统同时接收并处理数据集的数据量。每秒查询率阈值具体可以用于控制目标系统向数据库发送查询请求的频率等。
一种具体的实现方式中,上述限流规则具体可以为吞吐量阈值,通过目标系统的实时流量,计算得到目标系统的实时吞吐量,基于该实时吞吐量和限流规则中的吞吐量阈值,计算得到剩余吞吐量,进而基于剩余吞吐量计算得到查询结果的发送速度。上述吞吐量可以通过TPS(Transaction Per Second,每秒钟系统能够处理的事务的数量)或QPS(QueryPer Second,每秒钟系统能够处理的查询的数量)表征。通过设置合适的TPS活QPS阈值,可以控制查询结果的发送速度,实现将查询结果平滑的发送至目标系统,避免对目标系统形成冲击。
作为一个示例,在金融交易场景中,由于网络和银行侧系统问题,可能会出现大量的申购处理中交易,金融交易系统单线程会每10分钟拉取500条数据进行处理,但由于系统瞬间请求银行系统接口频率太大,超过了银行系统接口的QPS,后续在分页处理交易时进行了系统的优化,设置了限流,达到请求银行系统接口的QPS为10,使系统平滑的处理掉了处理中的数据,保护了银行系统。
上述步骤在具体实现时,确定实时流量是否高于预设流量阈值;如果实时流量高于预设流量阈值,根据限流规则中的吞吐量阈值,确定发送查询结果时,单位时间内的数据发送量;按照单位时间内的数据发送量,将查询结果发送至目标系统,以使目标系统的吞吐量小于或等于吞吐量阈值。在该方式中,当目标系统的实时流量高于预设流量阈值时,通过限流规则在发送查询结果时进行限流处理,即,按照确定的单位时间内的数据发送量,发送查询结果,以保证目标系统的吞吐量不超过吞吐量阈值。当目标系统的实时流量小于或等于预设流量阈值时,可以理解为目标系统相对空闲,可以不对查询结果进行限流处理,直接将查询结果发送至目标系统。
如果在数据分页查询的过程中,查询出现异常,不能得到查询结果,则可以重启从上述步骤S101或步骤S201开始执行。在查询系统中,可以设置一线程,用于监控每个查询任务的处理状态,如果监控到某一查询任务异常,则从前述步骤S101或步骤S201开始重新启动执行该查询任务,从而恢复查询任务的状态为正常状态;同时其他查询任务进程不受影响。
上面对本发明实施例中数据分页查询方法进行了描述,下面对本发明实施例中数据分页查询装置进行描述,请参阅图3,本发明实施例中数据分页查询装置的一个实施例包括:
数据集获取模块31,用于获取查询范围条件,从数据库中获取符合查询范围条件的数据集;
判断模块32,用于获取数据查询条件,确定数据查询条件是否符合预设的条件规则;其中,条件规则包括:数据查询条件中查询字段的变化属性,和/或数据查询条件中查询字段的索引区分度;
分页查询模块33,用于如果数据查询条件符合条件规则,基于数据查询条件在数据集中进行分页查询,得到符合数据查询条件的查询结果。
上述数据分页查询装置,获取查询范围条件,从数据库中获取符合查询范围条件的数据集;获取数据查询条件,确定数据查询条件是否符合预设的条件规则;其中,条件规则包括:数据查询条件中查询字段的变化属性,和/或数据查询条件中查询字段的索引区分度;如果数据查询条件符合条件规则,基于数据查询条件在数据集中进行分页查询,得到符合数据查询条件的查询结果。该方式中,通过设置条件规则,在数据查询之前先确定数据查询条件是否合理,进而再基于数据查询条件进行分页查询。该条件规则可以滤除到较为不合理的数据查询条件,从而避免在数据查询过程中出现查询结果不准确或查询效率低的问题,提高了数据查询的准确性和效率,从而节约了人力成本和运算资源。
进一步的,本实施例中还设置了查询范围条件,在进行数据查询之前,先从数据库中获取较小范围的数据集,后续再基于该数据集进行数据查询。该方式可以进一步避免从数据库的冷数据中查询数据,进一步提高了数据查询效率。
请参阅图4,本发明实施例中数据分页查询装置的另一个实施例包括:
数据集获取模块31,用于获取查询范围条件,从数据库中获取符合查询范围条件的数据集;
判断模块32,用于获取数据查询条件,确定数据查询条件是否符合预设的条件规则;其中,条件规则包括:数据查询条件中查询字段的变化属性,和/或数据查询条件中查询字段的索引区分度;
分页查询模块33,用于如果数据查询条件符合条件规则,基于数据查询条件在数据集中进行分页查询,得到符合数据查询条件的查询结果。
上述判断模块,还用于:从数据查询条件中提取查询字段;针对每个查询字段,确定查询字段是否属于变化字段;其中,变化字段对应的字段内容在指定的时间范围内具有发生变化的概率;如果数据查询条件中存在属于变化字段的查询字段,确定数据查询条件不符合预设的条件规则。
上述判断模块,还用于:从数据查询条件中提取查询字段;针对每个查询字段,获取查询字段的索引区分度,确定索引区分度是否大于预设的区分度阈值;如果数据查询条件中存在引区分度小于区分度阈值的查询字段,确定数据查询条件不符合预设的条件规则。
上述分页查询模块,还用于:如果数据查询条件符合条件规则,基于数据查询条件在数据集中进行分页查询,得到初始查询结果;其中,初始查询结果包括至少一页数据;获取排序字段,针对每页数据,基于排序字段对页数据进行排序;其中,如果排序字段包括单一字段,任意两条数据中,排序字段的字段内容不同;如果排序字段包括多个字段,任意两条数据中,多个字段的字段内容组合不同;将排序后的每页数据确定为最终查询结果。
上述装置还包括限流模块34,用于获取目标系统的实时流量;目标系统用于接收查询结果;根据实时流量以及预设的限流规则,将查询结果发送至目标系统;其中,限流规则包括吞吐量阈值、并发量阈值和每秒查询率阈值中的一种或多种。
上述限流模块还用于:确定实时流量是否高于预设流量阈值;如果实时流量高于预设流量阈值,根据限流规则中的吞吐量阈值,确定发送查询结果时,单位时间内的数据发送量;按照单位时间内的数据发送量,将查询结果发送至目标系统,以使目标系统的吞吐量小于或等于吞吐量阈值。
上述数据集获取模块还用于:从数据库中获取数据生成时间晚于时间阈值的数据,得到初始数据;从初始数据中获取数据分页大小属于分页范围阈值的数据,得到数据集。
上述装置通过设置条件规则,在数据查询之前先确定数据查询条件是否合理,进而再基于数据查询条件进行分页查询。该条件规则可以滤除到较为不合理的数据查询条件,从而避免在数据查询过程中出现查询结果不准确或查询效率低的问题,提高了数据查询的准确性和效率,从而节约了人力成本和运算资源。进一步的,本实施例中还设置了查询范围条件,在进行数据查询之前,先从数据库中获取较小范围的数据集,后续再基于该数据集进行数据查询。该方式可以进一步避免从数据库的冷数据中查询数据,进一步提高了数据查询效率。
上面图3和图4从模块化的角度对本发明实施例中的数据分页查询装置进行详细描述,下面从硬件处理的角度对本发明实施例中数据分页查询设备进行详细描述。
图5是本发明实施例提供的一种数据分页查询设备的结构示意图,该数据分页查询设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据分页查询设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在数据分页查询设备500上执行存储介质530中的一系列指令操作。
数据分页查询设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5示出的数据分页查询设备结构并不构成对数据分页查询设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,计算机可读存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行数据分页查询方法的步骤。
本发明还提供一种数据分页查询设备,数据分页查询设备包括存储器和处理器,存储器中存储有指令,指令被处理器执行时,使得处理器执行上述各实施例中的数据分页查询方法的步骤。
进一步地,计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据分页查询方法,其特征在于,所述数据分页查询方法包括:
获取查询范围条件,从数据库中获取符合所述查询范围条件的数据集;
获取数据查询条件,确定所述数据查询条件是否符合预设的条件规则;其中,所述条件规则包括:所述数据查询条件中查询字段的变化属性,和/或所述数据查询条件中查询字段的索引区分度;
如果所述数据查询条件符合所述条件规则,基于所述数据查询条件在所述数据集中进行分页查询,得到符合所述数据查询条件的查询结果。
2.根据权利要求1所述的数据分页查询方法,其特征在于,确定所述数据查询条件是否符合预设的条件规则的步骤,包括:
从所述数据查询条件中提取查询字段;
针对每个所述查询字段,确定所述查询字段是否属于变化字段;其中,所述变化字段对应的字段内容在指定的时间范围内具有发生变化的概率;
如果所述数据查询条件中存在属于所述变化字段的查询字段,确定所述数据查询条件不符合预设的条件规则。
3.根据权利要求1所述的数据分页查询方法,其特征在于,确定所述数据查询条件是否符合预设的条件规则的步骤,包括:
从所述数据查询条件中提取查询字段;
针对每个所述查询字段,获取所述查询字段的索引区分度,确定所述索引区分度是否大于预设的区分度阈值;
如果所述数据查询条件中存在引区分度小于所述区分度阈值的查询字段,确定所述数据查询条件不符合预设的条件规则。
4.根据权利要求1所述的数据分页查询方法,其特征在于,如果所述数据查询条件符合所述条件规则,基于所述数据查询条件在所述数据集中进行分页查询,得到符合所述数据查询条件的查询结果的步骤,包括:
如果所述数据查询条件符合所述条件规则,基于所述数据查询条件在所述数据集中进行分页查询,得到初始查询结果;其中,所述初始查询结果包括至少一页数据;
获取排序字段,针对每页数据,基于所述排序字段对所述页数据进行排序;其中,如果所述排序字段包括单一字段,任意两条数据中,所述排序字段的字段内容不同;如果所述排序字段包括多个字段,任意两条数据中,所述多个字段的字段内容组合不同;
将排序后的每页数据确定为最终查询结果。
5.根据权利要求1所述的数据分页查询方法,其特征在于,如果所述数据查询条件符合所述条件规则,基于所述数据查询条件在所述数据集中进行分页查询,得到符合所述数据查询条件的查询结果的步骤之后,所述方法还包括:
获取目标系统的实时流量;所述目标系统用于接收所述查询结果;
根据所述实时流量以及预设的限流规则,将所述查询结果发送至所述目标系统;其中,所述限流规则包括吞吐量阈值、并发量阈值和每秒查询率阈值中的一种或多种。
6.根据权利要求5所述的数据分页查询方法,其特征在于,根据所述实时流量以及预设的限流规则,将所述查询结果发送至所述目标系统的步骤,包括:
确定所述实时流量是否高于预设流量阈值;
如果所述实时流量高于预设流量阈值,根据所述限流规则中的吞吐量阈值,确定发送所述查询结果时,单位时间内的数据发送量;
按照所述单位时间内的数据发送量,将所述查询结果发送至所述目标系统,以使所述目标系统的吞吐量小于或等于所述吞吐量阈值。
7.根据权利要求1-6中任意一项所述的数据分页查询方法,其特征在于,所述查询范围条件包括时间阈值和分页范围阈值;所述从数据库中获取符合所述查询范围条件的数据集的步骤,包括:
从数据库中获取数据生成时间晚于所述时间阈值的数据,得到初始数据;
从所述初始数据中获取数据分页大小属于所述分页范围阈值的数据,得到所述数据集。
8.一种数据分页查询装置,其特征在于,所述数据分页查询装置包括:
数据集获取模块,用于获取查询范围条件,从数据库中获取符合所述查询范围条件的数据集;
判断模块,用于获取数据查询条件,确定所述数据查询条件是否符合预设的条件规则;其中,所述条件规则包括:所述数据查询条件中查询字段的变化属性,和/或所述数据查询条件中查询字段的索引区分度;
分页查询模块,用于如果所述数据查询条件符合所述条件规则,基于所述数据查询条件在所述数据集中进行分页查询,得到符合所述数据查询条件的查询结果。
9.一种数据分页查询设备,其特征在于,所述数据分页查询设备包括:存储器和至少一个处理器,所述存储器中存储有指令;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述数据分页查询设备执行如权利要求1-7中任意一项所述的数据分页查询方法。
10.一种计算机可读存储介质,其上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-7中任意一项所述的数据分页查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111534815.4A CN114238328A (zh) | 2021-12-15 | 2021-12-15 | 数据分页查询方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111534815.4A CN114238328A (zh) | 2021-12-15 | 2021-12-15 | 数据分页查询方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114238328A true CN114238328A (zh) | 2022-03-25 |
Family
ID=80756313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111534815.4A Pending CN114238328A (zh) | 2021-12-15 | 2021-12-15 | 数据分页查询方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114238328A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024046352A3 (zh) * | 2022-09-02 | 2024-04-18 | 顺丰科技有限公司 | 数据查询方法、装置、计算机设备及存储介质 |
-
2021
- 2021-12-15 CN CN202111534815.4A patent/CN114238328A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024046352A3 (zh) * | 2022-09-02 | 2024-04-18 | 顺丰科技有限公司 | 数据查询方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103984726B (zh) | 一种数据库执行计划的局部修正方法 | |
CN112800095B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN109933617B (zh) | 一种数据处理方法、装置以及相关设备和介质 | |
JP5730386B2 (ja) | 計算機システム及び並列分散処理方法 | |
CN107180031B (zh) | 分布式存储方法及装置、数据处理方法及装置 | |
CN108733790B (zh) | 数据排序方法、装置、服务器和存储介质 | |
CN105550225A (zh) | 索引构建方法、查询方法及装置 | |
CN111722918A (zh) | 业务标识码生成方法、装置、存储介质及电子设备 | |
CN102054000A (zh) | 数据查询方法、装置及系统 | |
CN106202092A (zh) | 数据处理的方法及系统 | |
CN109714249B (zh) | 一种小程序消息的推送方法及相关装置 | |
CN105488134A (zh) | 大数据处理方法及大数据处理装置 | |
CN112380278A (zh) | 财务数据报表的生成方法、装置、设备及存储介质 | |
CN116560860B (zh) | 一种基于机器学习的资源优先级的实时优化调整方法 | |
CN114238328A (zh) | 数据分页查询方法、装置、设备及存储介质 | |
CN111475532A (zh) | 数据处理的优化方法及装置、存储介质、终端 | |
CN114221908A (zh) | 动态限流熔断处理方法、装置、计算机设备及存储介质 | |
CN112181498B (zh) | 并发控制方法、装置和设备 | |
CN107844490B (zh) | 一种数据库的分库方法及装置 | |
US10726013B2 (en) | Information processing device, information processing method, and recording medium | |
CN115438056A (zh) | 一种数据获取方法、装置、设备以及存储介质 | |
CN114020446A (zh) | 一种跨多引擎的路由处理方法、装置、设备及存储介质 | |
CN113434273A (zh) | 数据处理方法、装置、系统及存储介质 | |
CN110363515B (zh) | 权益卡账户信息查询方法、系统、服务器及可读存储介质 | |
CN103324640A (zh) | 一种确定搜索结果文档的方法、装置和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |