System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据库和内存优化,特别涉及一种用于数据库的内存性能优化方法、电子设备以及存储介质。
技术介绍
1、数据库是用于存储和管理数据的仓库,而内存在数据库的管理中起着重要的作用。因为内存加快了对数据的读取和写入速度,响应时间大大减少,使用户能够快速得到所需数据。通常,会将那些在数据库中被频繁读取的数据缓存到内存上,从而将这些被频繁读取的数据的多次写操作变成一次写操作,并减少了对磁盘io的依赖,进而大大提高数据库性能。但当内存过小时,数据会进行频繁的换入换出,将某些数据从内存释放掉,落回磁盘,这样导致性能降低,数据处理变慢。此外,内存相比于磁盘价格高,容量小,若一味的追求数据库的性能,硬件方面部署过大的内存,会花费高昂的价钱,导致性价比很低。
技术实现思路
1、鉴于上述问题,本专利技术提供了一种用于数据库的内存优化方法、电子设备以及存储介质,以期至少能够解决上述问题之一。
2、根据本专利技术的第一个方面,提供了一种用于数据库的内存性能优化方法,包括:
3、将存储级内存作为数据内存堆进行挂载,通过数据库集群启动单机服务时调用存储级内存的对应接口完成存储级内存的初始化,并设置存储级内存的工作模式为内存模式;
4、首次读取目标数据表时,将目标数据表中的目标数据块从磁盘加载到数据内存堆中并将目标数据块标记为热数据,基于预定义的页替换机制,在目标数据块超过热数据内存阈值的情况下,将目标数据块中的部分数据转为冷数据;
5、通过开启异步线程对数
6、在存储级内存中存满数据块的情况下,根据预定义的页替换机制,将存储级内存中的冷数据清理掉,将被清理掉的冷数据存储到磁盘中;
7、再次读取目标数据表时,对数据内存堆和存储级内存的数据缓存情况进行先后检索,并基于检索结果对目标数据表中的目标数据块进行读取或从磁盘重新加载到数据内存堆中进行处理。
8、根据本专利技术的实施例,上述预定义的页替换机制包括lirs机制,存储级内存包括aep。
9、根据本专利技术的实施例,上述首次读取目标数据表时,将目标数据表中的目标数据块从磁盘加载到数据内存堆中并将目标数据块标记为热数据,基于预定义的页替换机制,在目标数据块超过热数据内存阈值的情况下,将目标数据块中的部分数据转为冷数据包括:
10、为每个加载到数据内存堆中的目标数据块创建节点信息表用于记载目标数据块的信息;
11、将上一个目标数据块的节点信息表写入到节点表中,再将当前目标数据块的节点信息表写入到节点表中并删除上一个目标数据块的节点信息表,其中,节点表是节点信息表的合集并通过节点新表进行更新;
12、将目标数据表中的目标数据块从磁盘加载到数据内存堆过程中,重复执行节点信息表的创建操作和节点表的更新操作,直到目标数据表中的数据缓存完毕;
13、在目标数据表中的数据缓存完毕的情况下,根据预定义的页替换机制,将超过热数据内存阈值的数据块标记为冷数据,并生成用于记录被标记为冷数据的数据块的临时节点信息表。
14、根据本专利技术的实施例,上述节点信息表包括表唯一标识符、列唯一标识符、数据块唯一标识符以及数据块指针对象。
15、根据本专利技术的实施例,上述通过开启异步线程对数据内存堆中的冷数据进行监控,基于所得到的信号,通过异步线程读取数据内存堆中的冷数据并将数据内存堆中的冷数据异步写入存储级内存中包括:
16、在目标数据块中被标记为冷数据的部分数据发出信号后,通过数据库的异步线程启动读取冷数据;
17、通过异步线程读取临时节点信息表获取冷数据的信息,并基于所获取的冷数据的信息找到对应的冷数据,将被找到的冷数据写入到存储级内存中。
18、根据本专利技术的实施例,上述通过开启异步线程对数据内存堆中的冷数据进行监控,基于所得到的信号,通过异步线程读取数据内存堆中的冷数据并将数据内存堆中的冷数据异步写入存储级内存中还包括:
19、通过将数据内存堆中已存在的冷数据清理掉来释放内存,并为写入到存储级内存中的冷数据创建与目标数据块相同的节点信息表。
20、根据本专利技术的实施例,上述再次读取目标数据表时,对数据内存堆和存储级内存的数据缓存情况进行先后检索,并基于检索结果对目标数据表中的目标数据块进行读取或从磁盘重新加载到数据内存堆中进行处理包括:
21、先对数据内存堆进行检索再对存储级内存进行检索,得到检索结果;
22、在检索结果是数据内存堆或存储级内存中存在目标数据表的数据缓存的情况下,基于目标数据表中目标数据块的节点信息表,直接读取数据内存堆或存储级内存中的数据缓存。
23、根据本专利技术的实施例,上述再次读取目标数据表时,对数据内存堆和存储级内存的数据缓存情况进行先后检索,并基于检索结果对目标数据表中的目标数据块进行读取或从磁盘重新加载到数据内存堆中进行处理还包括:
24、在检索结果是数据内存堆和存储级内存中均不存在目标数据表的数据缓存的情况下,重新执行目标数据块从磁盘到数据内存堆的加载操作、异步线程的读取和写入操作以及冷数据的清理操作。
25、根据本专利技术的第二个方面,提供了一种电子设备,包括:
26、一个或多个处理器;
27、存储装置,用于存储一个或多个程序,
28、其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行用于数据库的内存性能优化方法。
29、根据本专利技术的第三个方面,提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行用于数据库的内存性能优化方法。
30、本专利技术提供的上述用于数据库的内存性能优化方法将存储级内存作为二级缓存,解决了数据库因内存小导致的常用数据被频繁换入换出的问题,有效提高了数据的性能,方便了用户对数据库的操作。
本文档来自技高网...【技术保护点】
1.一种用于数据库的内存性能优化方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述预定义的页替换机制包括LIRS机制,所述存储级内存包括AEP。
3.根据权利要求1所述的方法,其特征在于,首次读取目标数据表时,将所述目标数据表中的目标数据块从磁盘加载到所述数据内存堆中并将所述目标数据块标记为热数据,基于预定义的页替换机制,在所述目标数据块超过热数据内存阈值的情况下,将所述目标数据块中的部分数据转为冷数据包括:
4.根据权利要求3所述的方法,其特征在于,所述节点信息表包括表唯一标识符、列唯一标识符、数据块唯一标识符以及数据块指针对象。
5.根据权利要求3所述的方法,其特征在于,通过开启异步线程对所述数据内存堆中的冷数据进行监控,基于所得到的信号,通过所述异步线程读取所述数据内存堆中的冷数据并将所述数据内存堆中的冷数据异步写入所述存储级内存中包括:
6.根据权利要求5所述的方法,其特征在于,还包括:
7.根据权利要求1所述的方法,其特征在于,再次读取所述目标数据表时,对所述数据内存堆和所述存
8.根据权利要求7所述的方法,其特征在于,还包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~8中任一项所述的方法。
...【技术特征摘要】
1.一种用于数据库的内存性能优化方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述预定义的页替换机制包括lirs机制,所述存储级内存包括aep。
3.根据权利要求1所述的方法,其特征在于,首次读取目标数据表时,将所述目标数据表中的目标数据块从磁盘加载到所述数据内存堆中并将所述目标数据块标记为热数据,基于预定义的页替换机制,在所述目标数据块超过热数据内存阈值的情况下,将所述目标数据块中的部分数据转为冷数据包括:
4.根据权利要求3所述的方法,其特征在于,所述节点信息表包括表唯一标识符、列唯一标识符、数据块唯一标识符以及数据块指针对象。
5.根据权利要求3所述的方法,其特征在于,通过开启异步线程对所述数据内存堆中的冷数据进行...
【专利技术属性】
技术研发人员:郜志媛,
申请(专利权)人:天津南大通用数据技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。