数据库访问加速方法及装置与流程

专利2026-02-22  9


本技术涉及数据处理领域,具体涉及一种数据库访问加速方法及装置。


背景技术:

1、由于硬盘具有非易失性,即使在断电的情况下,数据仍然可以保持不变,因此数据库系统中的数据通常存储在物理硬盘上。然而,与内存相比,硬盘的数据访问速度相对较慢。为了提高数据访问速度,数据库系统通常会采用内存缓冲技术。

2、所述内存缓冲的基本思路是将数据从较慢的硬盘预先加载到较快的内存中。当数据库需要访问某个数据块时,首先检查该数据块是否已经存在于内存缓冲区中。如果是,则直接从内存中读取数据,从而避免了较慢的硬盘访问。如果不是,则需要从硬盘中读取数据,并将其加载到内存缓冲区中以备后续访问。

3、然而,现有技术存在一些缺点:

4、首先,当前的内存缓冲策略通常是反应性的,只有在数据块被访问时才会将其加载到内存中,如果数据库无法预测哪些数据块将在未来被访问,则可能无法有效地利用内存缓冲区来加速数据访问。

5、此外,当一个数据块第一次被访问时,需要从硬盘中读取并加载到内存中,该过程的速度相对较慢,而这种延迟在需要频繁访问大量不同数据块的应用场景中会影响数据库的整体性能。


技术实现思路

1、针对现有技术中的问题,本技术提供一种数据库访问加速方法及装置,能够提前记录高频访问数据块,在内存预热开启阶段会定时进行内存预热,提高内存命中率,优化数据库的执行效率。

2、为了解决上述问题中的至少一个,本技术提供以下技术方案:

3、根据本技术实施例的第一方面,本技术提供一种数据库访问加速方法,包括:

4、在预设时间段内,响应于接收到对数据库内数据块的访问请求,获取并返回被请求数据块,并基于计数器记录每一所述被请求数据块的访问次数;

5、在所述预设时间段的结束时刻,对所述预设时间段内每个被请求数据块的访问次数进行统计,以识别访问次数超过预设访问次数的数据块,并将所述数据块构成的集合确定为当前时间段内的高频访问数据块集合,并将所述高频访问数据块集合存储至内存缓冲区;

6、在所述预设时间段的结束时刻后,响应于接收到访问请求,优先基于当前的内存缓冲区获取并返回所述被访问数据块,若所述被访问数据块不存在于所述内存缓冲区中,则从硬盘加载该数据块并更新内存缓冲区以加速数据库访问。

7、根据本技术的任一实施方式,所述在预设时间段内,响应于接收到对数据库内数据块的访问请求,获取并返回被请求数据块,并基于计数器记录每一所述被请求数据块的访问次数,包括:

8、通过所述数据库的请求处理端接收对数据库内数据块的访问请求,并在接收到所述访问请求的情况下获取并返回所述被请求数据块;

9、将所述被请求数据块的获取消息发送至所述数据库的行为记录端,并基于计数器记录每一所述被请求数据块的访问次数。

10、根据本技术的任一实施方式,响应于所述请求处理端将所述获取消息发出,确定将所述被请求数据块的获取消息发送至所述数据库的行为记录端。

11、根据本技术的任一实施方式,所述在所述预设时间段的结束时刻,对所述预设时间段内每个被请求数据块的访问次数进行统计,以识别访问次数超过预设访问次数的数据块,并将所述数据块构成的集合确定为当前时间段内的高频访问数据块集合,包括:

12、获取所述预设时间段内每一所述被请求数据块的访问次数记录,并对所述请求处理端与所述行为记录端的获取消息记录数量进行比对;

13、响应于比对结果的误差值满足预设要求,将满足预设访问次数的数据块确定为所述高频访问数据块集合。

14、根据本技术的任一实施方式,所述将所述高频访问数据块集合存储至内存缓冲区,包括:

15、将所述内存缓冲区的划分出预设比例的存储空间;

16、按访问频率由高到低的顺序将所述高频访问数据块集合中的数据块存储至所述存储空间,直至达到所述存储空间的存储上限。

17、根据本技术的任一实施方式,所述在所述预设时间段的结束时刻后,响应于接收到访问请求,优先基于当前的内存缓冲区获取并返回所述被访问数据块,若所述被访问数据块不存在于所述内存缓冲区中,则从硬盘加载该数据块并更新内存缓冲区以加速数据库访问,包括:

18、在所述预设时间段的结束时刻后,响应于接收到访问请求,响应于所述内存缓冲区中存在被访问数据块,获取并返回所述被访问数据块。

19、根据本技术的任一实施方式,还包括:

20、响应于所述内存缓冲区中不存在所述被访问数据块,在所述内存缓冲区未满的情况下,将所述被访问数据块存储至所述内存缓冲区中所述预设比例的存储空间外的剩余存储空间;

21、响应于所述内存缓冲区中不存在所述被访问数据块,在所述内存缓冲区已满的情况下,清除所述剩余存储空间中最长时间未被访问的数据块,并将所述被访问数据块存储至所述剩余存储空间。

22、根据本技术实施例的第二方面,本技术提供一种数据库访问加速装置,包括:

23、处理记录模块,用于:在预设时间段内,响应于接收到对数据库内数据块的访问请求,获取并返回被请求数据块,并基于计数器记录每一所述被请求数据块的访问次数;

24、数据预热模块,用于:在所述预设时间段的结束时刻,对所述预设时间段内每个被请求数据块的访问次数进行统计,以识别访问次数超过预设访问次数的数据块,并将所述数据块构成的集合确定为当前时间段内的高频访问数据块集合,并将所述高频访问数据块集合存储至内存缓冲区;

25、访问加速模块,用于:在所述预设时间段的结束时刻后,响应于接收到访问请求,优先基于当前的内存缓冲区获取并返回所述被访问数据块,若所述被访问数据块不存在于所述内存缓冲区中,则从硬盘加载该数据块并更新内存缓冲区以加速数据库访问。

26、根据本技术的任一实施方式,所述处理记录模块包括:

27、请求处理单元,用于:通过所述数据库的请求处理端接收对数据库内数据块的访问请求,并在接收到所述访问请求的情况下获取并返回所述被请求数据块;

28、行为记录单元,用于:将所述被请求数据块的获取消息发送至所述数据库的行为记录端,并基于计数器记录每一所述被请求数据块的访问次数。

29、根据本技术的任一实施方式,响应于所述请求处理端将所述获取消息发出,确定将所述被请求数据块的获取消息发送至所述数据库的行为记录端。

30、根据本技术的任一实施方式,所述数据预热模块包括:

31、误差比对单元,用于:获取所述预设时间段内每一所述被请求数据块的访问次数记录,并对所述请求处理端与所述行为记录端的获取消息记录数量进行比对;

32、集合确定单元,用于:响应于比对结果的误差值满足预设要求,将满足预设访问次数的数据块确定为所述高频访问数据块集合。

33、根据本技术的任一实施方式,所述数据预热模块还包括:

34、空间划分单元,用于:将所述内存缓冲区的划分出预设比例的存储空间;

35、数据存储单元,用于:按访问频率由高到低的顺序将所述高频访问数据块集合中的数据块存储至所述存储空间,直至达到所述存储空间的存储上限。

36、根据本技术的任一实施方式,所述访问加速模块包括:

37、加速返回单元,用于:在所述预设时间段的结束时刻后,响应于接收到访问请求,响应于所述内存缓冲区中存在被访问数据块,获取并返回所述被访问数据块。

38、根据本技术的任一实施方式,所述访问加速模块还包括:

39、补充存储单元,用于:响应于所述内存缓冲区中不存在所述被访问数据块,在所述内存缓冲区未满的情况下,将所述被访问数据块存储至所述内存缓冲区中所述预设比例的存储空间外的剩余存储空间;

40、闲置清除单元,用于:响应于所述内存缓冲区中不存在所述被访问数据块,在所述内存缓冲区已满的情况下,清除所述剩余存储空间中最长时间未被访问的数据块,并将所述被访问数据块存储至所述剩余存储空间。

41、根据本技术实施例的第三方面,本技术提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的数据库访问加速方法的步骤。

42、根据本技术实施例的第四方面,本技术提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的数据库访问加速方法的步骤。

43、根据本技术实施例的第五方面,本技术提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现所述的数据库访问加速方法的步骤。

44、由上述技术方案可知,本技术提供一种数据库访问加速方法及装置,通过在预设时间段内,响应于接收到对数据库内数据块的访问请求,获取并返回被请求数据块,并基于计数器记录每一所述被请求数据块的访问次数;在所述预设时间段的结束时刻,对所述预设时间段内每个被请求数据块的访问次数进行统计,以识别访问次数超过预设访问次数的数据块,并将所述数据块构成的集合确定为当前时间段内的高频访问数据块集合,并将所述高频访问数据块集合存储至内存缓冲区;在所述预设时间段的结束时刻后,响应于接收到访问请求,优先基于当前的内存缓冲区获取并返回所述被访问数据块,若所述被访问数据块不存在于所述内存缓冲区中,则从硬盘加载该数据块并更新内存缓冲区以加速数据库访问能够提前记录高频访问数据块,在内存预热开启阶段会定时进行内存预热,提高内存命中率,优化数据库的执行效率。


技术特征:

1.一种数据库访问加速方法,其特征在于,所述方法包括:

2.根据权利要求1所述的数据库访问加速方法,其特征在于,所述在预设时间段内,响应于接收到对数据库内数据块的访问请求,获取并返回被请求数据块,并基于计数器记录每一所述被请求数据块的访问次数,包括:

3.根据权利要求2所述的数据库访问加速方法,其特征在于,响应于所述请求处理端将所述获取消息发出,确定将所述被请求数据块的获取消息发送至所述数据库的行为记录端。

4.根据权利要求3所述的数据库访问加速方法,其特征在于,所述在所述预设时间段的结束时刻,对所述预设时间段内每个被请求数据块的访问次数进行统计,以识别访问次数超过预设访问次数的数据块,并将所述数据块构成的集合确定为当前时间段内的高频访问数据块集合,包括:

5.根据权利要求1所述的数据库访问加速方法,其特征在于,所述将所述高频访问数据块集合存储至内存缓冲区,包括:

6.根据权利要求5所述的数据库访问加速方法,其特征在于,所述在所述预设时间段的结束时刻后,响应于接收到访问请求,优先基于当前的内存缓冲区获取并返回所述被访问数据块,包括:

7.根据权利要求6所述的数据库访问加速方法,其特征在于,所述若所述被访问数据块不存在于所述内存缓冲区中,则从硬盘加载该数据块并更新内存缓冲区以加速数据库访,包括:

8.一种数据库访问加速装置,其特征在于,所述装置包括:

9.根据权利要求8所述的数据库访问加速装置,其特征在于,所述处理记录模块包括:

10.根据权利要求9所述的数据库访问加速装置,其特征在于,响应于所述请求处理端将所述获取消息发出,确定将所述被请求数据块的获取消息发送至所述数据库的行为记录端。

11.根据权利要求10所述的数据库访问加速装置,其特征在于,所述数据预热模块包括:

12.根据权利要求8所述的数据库访问加速装置,其特征在于,所述数据预热模块还包括:

13.根据权利要求12所述的数据库访问加速装置,其特征在于,所述访问加速模块包括:

14.根据权利要求13所述的数据库访问加速装置,其特征在于,所述访问加速模块还包括:

15.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述的数据库访问加速方法的步骤。

16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的数据库访问加速方法的步骤。

17.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至7任一项所述的数据库访问加速方法的步骤。


技术总结
本申请实施例提供一种数据库访问加速方法及装置,方法包括:在预设时间段内,响应于接收到对数据库内数据块的访问请求,获取并返回被请求数据块,并基于计数器记录每一所述被请求数据块的访问次数;在所述预设时间段的结束时刻,根据所述预设时间段内所述被请求数据块的访问次数记录确定当前时间段内的高频访问数据块集合,并将所述高频访问数据块集合存储至内存缓冲区;在所述预设时间段的结束时刻后,响应于接收到访问请求,优先基于当前的内存缓冲区获取并返回所述被访问数据块;本申请能够提前记录高频访问数据块,在内存预热开启阶段会定时进行内存预热,提高内存命中率,优化数据库的执行效率。

技术研发人员:朱博帅
受保护的技术使用者:中国建设银行股份有限公司
技术研发日:
技术公布日:2024/6/26
转载请注明原文地址:https://doc.8miu.com/read-1827969.html

最新回复(0)