本发明涉及数据库领域,尤其涉及了一种提高数据库性能的方法。
背景技术:
数据库的性能受处理器,内存,io多方面因素影响,其中处理器和内存可以通过较低成本更换添加硬件提升。而io性能的提高,会随着数据库的增大带来成本的急剧提高,影响io性能的主要因素是底层存储设备的组成。
数据库底层使用的存储设备通常分为机械硬盘和固态硬盘两类。其中,机械硬盘历史悠久,技术成熟,价格低廉,但存在寻道时间长,随机读写性能差的问题;固态硬盘,包含ssd,nvme,flash卡,带电池的nvram等,内部不含机械装置及盘片,寻道时间短,随机读写性能强,但价格高昂。
根据计算机行业的共识,绝大多数场景下,数据的访问频率都会遵循“二八原则”。即20%为热数据,会被经常读取;80%为冷数据,极少被读取,所以存在数据读取效率低下的问题。
技术实现要素:
本发明针对现有技术中io性提升困难、成本较高的缺点,提供了一种提高数据库性能的方法。
为了解决上述技术问题,本发明通过下述技术方案得以解决。
一种提高数据库性能的方法,包括如下步骤:
(1)数据库内连接前端设备和后端设备,前端设备和后端设备的数量比例为1:4;
(2)读取数据库内数据时,先从前端设备进行寻找目标数据,如在前端设备寻找不到目标数据,则从后端设备读取,并同时写入前端设备;如在前端设备找到目标数据,则不查询后端设备;
(3)数据库对输出的数据进行操作,操作过程为:
①数据库内输出的数据如在前端设备可寻找到并读取,并标记数据为前列数据,则不读取后端设备;
②数据库内输出的数据如在前端设备找不到,则在后端设备寻找数据,寻找到后,将该数据写入前端设备,并标记数据为前列数据,对原有数据进行覆盖。
作为优选,后端设备设备为机械硬盘;前端设备设备为固态硬盘。
作为优选,步骤(3)中,覆盖过程为使用时间最新的数据放置在队列最前,队列最后的数据如溢出数据内存则将该数据标记为失效进行移除。
本发明由于采用了以上技术方案,具有显著的技术效果:本发明通过更改数据库底层存储结构,和相同的存储结构比较,具有相同存储空间,但是使用较低成本,提高了经济效益;而且本发明中的数据读取方式,提高了数倍读取性能而且兼容现有硬件架构,只要增加少许固态硬盘就可平滑升级,在日常使用中具有良好的复用性和实用效果。
附图说明
图1是本发明一种提高数据库性能的方法的流程示意图。
具体实施方式
下面结合附图与实施例对本发明作进一步详细描述。
如图1所示,一种提高数据库性能的方法,包括如下步骤:
(1)数据库内连接前端设备和后端设备,前端设备和后端设备的数量比例为1:4;后端设备设备为机械硬盘;前端设备设备为固态硬盘。
(2)读取数据库内数据时,先从前端设备进行寻找目标数据,如在前端设备寻找不到目标数据,则从后端设备读取,并同时写入前端设备;如在前端设备找到目标数据,则不查询后端设备;
(3)数据库对输出的数据进行操作,操作过程为:
①数据库内输出的数据如在前端设备可寻找到并读取,并标记数据为前列数据,则不读取后端设备;
②数据库内输出的数据如在前端设备找不到,则在后端设备寻找数据,寻找到后,将该数据写入前端设备,并标记数据为前列数据,对原有数据进行覆盖。
步骤(3)中,覆盖过程为使用时间最新的数据放置在队列最前,队列最后的数据如溢出数据内存则将该数据标记为失效进行移除。
本发明通过更改数据库底层存储结构,和相同的存储结构比较,具有相同存储空间,但是使用较低成本,提高了经济效益;而且本发明中的数据读取方式,提高了数倍读取性能而且兼容现有硬件架构,只要增加少许固态硬盘就可平滑升级,在日常使用中具有良好的复用性和实用效果。
实施例1
(1)底层使用10tb机械硬盘构建数据库,观察日志应用速度为200k/s
(2)增加1tb固态硬盘,令数据库访问数据时首先从固态硬盘读取,如果未能找到,则从后端设备读取,并同时写入前端设备;此时日志应用速度仍为200k/s。
(3)当固态硬盘中的数据逐渐增加,非首次访问的数据读取速度达到30720k/s,首次访问的数据依然为200k/s。
(4)根据“二八原则”,80%情况下均会从固态硬盘读取数据,性能获得极大提升。
总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。