数据库存储引擎的轻量扫描方法、电子设备与流程
- 国知局
- 2025-01-10 13:27:25
本发明涉及计算机,具体涉及数据库,更具体地涉及一种数据库存储引擎的轻量扫描方法、电子设备。
背景技术:
1、在现代计算机技术领域中,随着信息化进程的加速,数据量呈指数级增长,如何高效地存储、管理和查询海量数据成为了一个重要的课题。关系型数据库管理系统(rdbms)作为数据管理的核心技术,广泛应用于各类信息系统中。然而,传统的数据库存储和查询方式在面对高并发、大规模数据查询处理时,往往会出现性能瓶颈。随着数据规模的不断扩大和并发查询需求的增加,进一步优化数据库的存储和查询效率,尤其是扫描操作的效率,显得尤为重要。
2、在大数据处理场景下,扫描操作是数据库查询过程中最为常见和关键的操作之一。数据以页为最小单位存储在数据库系统中,传统的扫描技术通常先要将数据页从磁盘加载进全局缓存池中再逐页逐行处理。在高并发场景下,查询大数量表不仅会独占全局缓存池,还会在与其他表扫描争抢计算机输入(input)/输出(output)系统,也即i/o系统,造成大量随机i/o读写,影响查询效率。
3、因此,如何在保证数据完整性和准确性的前提下,提高大数量表扫描操作的效率,成为了一个亟待解决的问题。
技术实现思路
1、有鉴于此,本发明提供了一种数据库存储引擎的轻量扫描方法、电子设备。
2、本发明的一个方面提供了一种数据库存储引擎的轻量扫描方法,包括:获取待扫描的目标数据表的数据分布信息;根据数据分布信息和数据库存储引擎当前的资源使用信息,确定扫描策略;在确定扫描策略为轻量扫描策略情况下,根据数据分布信息确定并行扫描的扫描线程数量和每个扫描线程的扫描任务;调用与扫描线程数量对应的至少一个扫描线程执行各自的扫描任务,以从数据库中扫描得到目标数据表,其中,数据库通过多个数据页存储目标数据表,每个扫描线程通过执行扫描任务从数据库中批量扫描得到与其对应的多个数据页,并将与每个扫描线程对应的多个数据页填充至扫描线程的私有缓存中。
3、可选地,每个扫描线程与一个私有缓存关联,私有缓存的容量限制扫描线程从数据库中扫描得到的数据页的数量;其中,私有缓存的容量是动态变化的,且私有缓存的容量与扫描任务和/或当前的资源使用信息相关。
4、可选地,轻量扫描方法还包括:针对每个扫描线程,在扫描线程开始执行扫描任务之前,根据扫描任务确定私有缓存的目标容量,并将私有缓存的容量由初始容量修改为目标容量;以及在扫描线程结束扫描任务之后,将私有缓存的容量由目标容量恢复为初始容量。
5、可选地,轻量扫描方法还包括:针对每个扫描线程,在资源使用信息满足预定条件的情况下,按照预设容量步长将私有缓存的初始容量增加至目标容量;在资源使用信息不满足预定条件的情况下,将私有缓存的容量由目标容量恢复为初始容量。
6、可选地,根据数据分布信息和数据库存储引擎当前的资源使用信息,确定扫描策略,包括:根据数据分布信息,确定数据分布计算结果;对数据分布计算结果和资源使用信息进行加权求和,得到综合评分;在综合评分大于预定阈值的情况下,确定扫描策略为轻量扫描策略。
7、可选地,数据分布信息包括以下至少其中之一:目标数据表的行数、存储目标数据表的数据页的页数、物理地址;根据数据分布信息,确定数据分布计算结果包括以下至少其中之一:根据行数和/或页数,确定目标数据表的数据量;根据物理地址,确定连续段的分布值,其中,连续段表征物理地址相连的多个数据页,分布值是根据连续段的容量和/或容量大于预定容量的连续段数量确定的。
8、可选地,根据数据分布信息确定并行扫描的扫描线程数量和每个扫描线程的扫描任务,包括:根据数据量,确定扫描线程数量;在已创建扫描线程中确定与扫描线程数量对应的至少一个扫描线程;按照物理地址,确定每个扫描线程的扫描任务,并将每个扫描任务与每个扫描线程绑定。
9、可选地,按照物理地址,确定每个扫描线程的扫描任务,包括:按照物理地址,将处于同一连续段的多个数据页划分至同一扫描线程的扫描任务中,以得到每个扫描线程的扫描任务。
10、可选地,轻量扫描方法还包括:在已创建扫描线程的数量小于扫描线程数量的情况下,创建至少一个扫描线程,以确定与扫描线程数量对应的至少一个扫描线程。
11、本发明的另一个方面提供了一种数据库存储引擎的轻量扫描装置,该装置包括:获取模块,用于获取待扫描的目标数据表的数据分布信息;第一确定模块,用于根据数据分布信息和数据库存储引擎当前的资源使用信息,确定扫描策略;第二确定模块,用于在确定扫描策略为轻量扫描策略情况下,根据数据分布信息确定并行扫描的扫描线程数量和每个扫描线程的扫描任务;调用模块,用于调用与扫描线程数量对应的至少一个扫描线程执行各自的扫描任务,以从数据库中扫描得到目标数据表,其中,数据库通过多个数据页存储目标数据表,每个扫描线程通过执行扫描任务从数据库中批量扫描得到与其对应的多个数据页,并将与每个扫描线程对应的多个数据页填充至扫描线程的私有缓存中。
12、本发明的另一个方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现如上的方法。
13、本发明的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,指令在被执行时用于实现如上的方法。
14、本发明的另一方面提供了一种计算机程序产品,计算机程序产品包括计算机可执行指令,指令在被执行时用于实现如上的方法。
15、本发明提出了一种数据库存储引擎的轻量扫描方法,在高并发、大数据量处理场景下能够至少实现以下技术效果:
16、一方面,通过调用各自具有私有缓存的至少一个扫描线程,使得每个扫描线程批量扫描得到对应的数据页,能够减少i/o次数、提高扫描效率。
17、另一方面,考虑到在高并发、大数据量处理场景下,传统的扫描操作往往依赖于全局缓存池来存储数据页,使得在查询大数量表时会导致全局缓存池的独占,严重影响扫描效率和系统性能。本发明通过为每个扫描线程预先申请一定数量的缓存作为私有缓存,用于存储即将扫描的数据页,能够避免独占全局缓存池、大数据表与其他表争抢i/o的问题,提高扫描效率和系统性能。
18、再一方面,通过数据分布信息和当前的资源使用信息确定扫描策略,能够根据具体情况智能决策扫描策略,确保在适合的场景下采用最优的扫描策略,提高扫描效率和系统性能,满足用户在高并发、大数据量查询处理场景下的需求。
技术特征:1.一种数据库存储引擎的轻量扫描方法,其特征在于,所述轻量扫描方法包括:
2.根据权利要求1所述的轻量扫描方法,其特征在于,每个所述扫描线程与一个所述私有缓存关联,所述私有缓存的容量限制所述扫描线程从所述数据库中扫描得到的数据页的数量;
3.根据权利要求2所述的轻量扫描方法,其特征在于,所述轻量扫描方法还包括:针对每个所述扫描线程,
4.根据权利要求2所述的轻量扫描方法,其特征在于,所述轻量扫描方法还包括:针对每个所述扫描线程,
5.根据权利要求1所述的轻量扫描方法,其特征在于,所述根据所述数据分布信息和数据库存储引擎当前的资源使用信息,确定扫描策略,包括:
6.根据权利要求5所述的轻量扫描方法,其特征在于,所述数据分布信息包括以下至少其中之一:所述目标数据表的行数、存储所述目标数据表的数据页的页数、物理地址;
7.根据权利要求6所述的轻量扫描方法,其特征在于,所述根据所述数据分布信息确定并行扫描的扫描线程数量和每个扫描线程的扫描任务,包括:
8.根据权利要求7所述的轻量扫描方法,其特征在于,所述按照所述物理地址,确定每个所述扫描线程的扫描任务,包括:
9.根据权利要求7所述的轻量扫描方法,其特征在于,所述轻量扫描方法还包括:
10.一种电子设备,包括:
技术总结本发明提供了一种数据库存储引擎的轻量扫描方法、电子设备,可以应用于计算机技术领域、数据库技术领域。该轻量扫描方法包括:获取待扫描的目标数据表的数据分布信息;根据数据分布信息和数据库存储引擎当前的资源使用信息确定扫描策略;在确定扫描策略为轻量扫描策略情况下,根据数据分布信息确定并行扫描的扫描线程数量和每个扫描线程的扫描任务;调用与扫描线程数量对应的扫描线程执行各自的扫描任务,每个扫描线程执行扫描任务批量扫描得到与其对应的多个数据页,并将对应的多个数据页填充至扫描线程的私有缓存中。由此,本发明至少能够解决数据表扫描效率低、系统性能差的技术问题,实现提高扫描效率和系统性能的技术效果。技术研发人员:张旭,杨蔚受保护的技术使用者:江苏华库数据技术有限公司技术研发日:技术公布日:2025/1/6本文地址:https://www.jishuxx.com/zhuanli/20250110/353196.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表