基于固态硬盘的数据库优化方法及系统的制作方法

文档序号:6376442阅读:210来源:国知局
专利名称:基于固态硬盘的数据库优化方法及系统的制作方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于固态硬盘的数据库优化方法及系统。
背景技术
固态硬盘(Solid State Disk、IDE FLASH DISK)是用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片)组成。固态硬盘的接ロ规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘一致。广泛应用于军事、车载、エ控、视频监控、网络监控、网络終端、电力、医疗、航空等、导航设备等领域。固态硬盘Flash介质特性决定了 1)对Flash读写是以页为单位的;2) Flash擦写次数是有限制的,MLC约一万次,SLC约十万次。所以,在基于固态硬盘的计算机系统中,同样的主机数据访问情况下,Flash介质读写次数越少,访问数据越快,而Flash页写操作越少,固 态硬盘的寿命也越长。在目前固态硬盘的数据库应用中,由于数据库中记录大小并不确定,保存在固态硬盘上的数据与Flash页可能是非对齐的。如图I所示,在读写过程中,对保存在跨Flash页的数据记录,如图I中的数据记录3和6,其读写效率只有其他数据的一半。跨边界的数据降低了 Flash的读写性能,对Flash介质的读写次数増加,也降低了固态硬盘使用效率,降低了其使用寿命。综上可知,现有的基于固态硬盘的数据库访问方法,在实际使用上显然存在不便与缺陷,所以有必要加以改迸。

发明内容
针对上述的缺陷,本发明的目的在于提供一种基于固态硬盘的数据库优化方法及系统,可以提高数据库读写访问效率,提高固态硬盘的耐用性。为了实现上述目的,本发明提供一种基于固态硬盘的数据库优化方法及系统,所述方法包括A、获取数据库信息參数,所述信息參数包括数据库中数据记录长度;B、根据所述固态硬盘中的Flash页大小及所述数据库中数据记录长度,重新计算数据记录的存储位置,将需要跨Flash页存储的数据记录,重新映射到同一个Flash页中,并记录所述数据记录的原逻辑地址与新逻辑地址的映射关系;C、在数据记录读写过程中,根据所述数据库地址映射关系计算所述数据记录的新的逻辑地址,并将所述新的逻辑地址下发给固态硬盘。根据本发明的数据库优化方法,所述方法步骤B进ー步包括 根据所述数据记录大小及Flash页大小,计算所述数据库写入放大率PZ及跨页数据记录百分比PE,其中PZ=(页大小%数据记录大小)/页大小*100%,
PE =(数据记录大小-数据记录和页大小的最大公約数)/页大小*100%。根据本发明的数据库优化方法,所述方法步骤B进ー步包括预设所述PZ和PE的阈值;判断所述PZ和PE是否达到预设阈值,若是,则重新计算数据记录的存储位置,将需要跨Flash页存储的数据记录,重新映射到同一个Flash页中,否则不作处理。本发明还相应的提供一种基于固态硬盘的数据库优化系统,包括信息获取模块,用于获取数据库信息參数,所述信息參数包括数据库中数据记录长度;·
映射处理模块,用于根据所述固态硬盘中的Flash页大小及所述数据库中数据记录长度,重新计算数据记录的存储位置,将需要跨Flash页存储的数据记录,重新映射到同ー个Flash页中,并记录所述数据记录的原逻辑地址与新逻辑地址的映射关系;访问处理模块,在数据记录读写过程中,根据所述数据库地址映射关系计算所述数据记录的新的逻辑地址,并将所述新的逻辑地址下发给固态硬盘。根据本发明的数据库优化系统,所述映射处理模块包括计算子模块,用于根据所述数据记录大小及Flash页大小,计算所述数据库写入放大率PZ及跨页数据记录百分比PE,其中PZ=(页大小%数据记录大小)/页大小*100%,PE =(数据记录大小-数据记录和页大小的最大公約数)/页大小*100%。根据本发明的数据库优化系统,所述映射处理模块还包括设置子模块,用于预设所述PZ和PE阈值;判断子模块,用于判断所述PZ和PE是否达到预设阈值,若是,则重新计算数据记录的存储位置,将需要跨Flash页存储的数据记录,重新映射到同一个Flash页中,否则不作处理。本发明通过获取数据库的信息參数对数据库优化配置,具体的,本发明可根据固态硬盘中Flash页的大小以及数据库中的数据记录长度,重新计算数据记录的存储位置,将原本映射到Flash页边界,需要跨Flash页存储的记录,进行重新映射到同一个的Flash页中,借此避免或減少一次数据记录读写过程中固态硬盘需要从多个Flash页中读写记录的情況。同时,通过储存数据记录的原逻辑地址与新逻辑地址的映射关系,可使数据库下次被访问时对访问数据进行逻辑地址的转换,将真实的逻辑地址发送到固态硬盘进行访问处理。


图I是现有技术ー实施例的数据记录的储存分布示意图;图2是本发明一实施例的数据库优化系统的结构示意图;图3是本发明另ー实施例的数据库优化系统的结构示意图;图4是本发明一实施例的数据记录的储存分布示意图;图5是本发明一实施例的数据库优化方法的流程图;图6是本发明另ー实施例的数据库优化方法的流程图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进ー步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。參见图2,本发明提供了一种基于固态硬盘的数据库优化系统,该系统100具体包括信息获取模块10、映射处理模块20及访问处理模块30,其中信息获取模块10用于获取数据库信息參数,该数据库信息參数包括数据库中数据记录长度。映射处理模块20,用于根据所述固态硬盘中的Flash页大小及所述数据库中数据 记录长度,重新计算数据记录的存储位置,将原本映射到Flash页边界,需要跨Flash页存储的记录,重新映射到同一个Flash页中。图I中示出了数据记录3和6跨边界储存,不在 同一个Flash页中,经过映射处理模块20处理后,将数据记录进行重新映射,使跨边界储存的数据记录储存于同一 Flash页中,如图4所示,借此避免或減少一次数据记录读写过程中固态硬盘需要从多个Flash页中读写记录的情況,搞高读写性能。更好的,映射处理模块20还可以储存数据记录的原逻辑地址与新逻辑地址的映射关系。由于系统100对数据库的数据记录进行了重新映射处理,对应的部分数据记录的逻辑地址也会发生改变,因此数据记录的原逻辑地址与新逻辑地址具有一定的映射关系,映射处理模块20将对应的原逻辑地址与新逻辑地址的映射关系表进行储存,借此方便数据访问时对数据地址进行转换。访问处理模块30,用于接收主机的数据访问命令,在数据记录读写过程中,根据所述数据库地址映射关系计算所述数据记录的新的逻辑地址,并将所述新的逻辑地址下发给固态硬盘。当主机对数据库进行读写时,通过数据库的上述地址映射关系,将写入数据记录映射到新的逻辑地址上,固态硬盘根据收到的新逻辑地址,对Flash存储介质进行读写操作。更好的,为提高系统100对数据库的优化质量,本发明引入两个參数写入放大率PZ和跨页数据记录百分比PE,放大率具体指的是的优化后的数据库比原来数据库增加的存储容量。具体的计算方法如下PZ=(页大小%数据记录大小)/页大小*100%PE =(数据记录大小-数据记录和页大小的最大公約数)/页大小*100%。再结合图3,本发明通过在映射处理模块20中设ー计算子模块21,其可根据数据记录的大小及Flash页大小计算上述PZ和PE的值。PZ越大,表明引入写入放大越大,无效数据占用存储空间越多;PE越大,表明存储在两个Flash页(跨页)的数据记录越多,优化后的效果越好,PE越小,优化效果越不明显。需要说明的,上述计算公式适用于数据记录小于页大小情况下,当数据记录大于页大小时,计算方法相近,在此不再赘述。优选的是,映射处理模块20还包括设置子模块22和判断子模块23,其中设置子模块22用于设置上述PZ和PE的阈值,判断子模块23用于判断所述PZ和PE是否达到预设阈值,若是,则对数据库进行优化处理,即重新计算数据记录的存储位置,将需要跨Flash页存储的数据记录,重新映射到同一个Flash页中,否则不作处理。本发明的基于固态硬盘的数据库优化系统根据结构化数据的记录大小,将数据进行重新映射,在引入少量写入放大的基础上,避免或減少一条数据记录被写入多个Flash页中,提高数据读写速度,降低Flash读写次数,延长固态硬盘寿命。參见图5,本发明提供了一种数据库优化方法,其可以通过如图2所示的数据库优化系统100实现,该方法包括步骤S501,信息获取模块10获取数据库信息參数,所述信息參数包括数据库中数据记录长度。步骤S502,映射处理模块20根据所述固态硬盘中的Flash页大小及所述数据库中数据记录长度,重新计算数据记录的存储位置,将需要跨Flash页存储的数据记录,重新映射到同一个Flash页中,并记录所述数据记录的原逻辑地址与新逻辑地址的映射关系。步骤S503,访问处理模块30在数据记录读写过程中,根据所述数据库地址映射关系计算所述数据记录的新的逻辑地址,并将所述新的逻辑地址下发给固态硬盘。參见图6,本发明提供了另ー数据库优化方法,其包括 步骤S601,设置写入放大率PZ和跨页数据记录百分比PE的阈值。步骤S602,获取数据库信息參数,该信息參数包括数据库中数据记录长度。步骤S603,根据数据记录长度大小及Flash页大小,计算PZ和PE的值,具体的,PZ =(页大小%数据记录大小)/页大小*100%PE =(数据记录大小-数据记录和页大小的最大公約数)/页大小*100%。步骤S604,判断PZ和PE值是否达到预设阈值,若是则执行步骤S605,否则结束流程。步骤S605,启动对数据库的优化进程,重新计算数据记录的存储位置,将原本映射到Flash页边界,需要跨Flash页存储的记录,重新映射到同一个Flash页中。步骤S606,记录数据记录的逻辑地址转换的映射关系參数。步骤S607,接收主机的数据访问命令,根据数据记录的原逻辑地址与新逻辑地址的映射关系表,获取被访问数据的实际逻辑地址。综上所述,本发明通过获取数据库的信息參数对数据库优化配置,具体的,本发明可根据固态硬盘中Flash页的大小以及数据库中的数据记录长度,重新计算数据记录的存储位置,将原本映射到Flash页边界,需要跨Flash页存储的记录,进行重新映射到同一个的Flash页中,借此避免或減少一次数据记录读写过程中固态硬盘需要从多个Flash页中读写记录的情況。同时,通过储存数据记录的原逻辑地址与新逻辑地址的映射关系,可使数据库下次被访问时对访问数据进行逻辑地址的转换,将真实的逻辑地址发送到固态硬盘进行访问处理。当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种基于固态硬盘的数据库优化方法,其特征在于,所述方法包括 A、获取数据库信息參数,所述信息參数包括数据库中数据记录长度; B、根据所述固态硬盘中的Flash页大小及所述数据库中数据记录长度,重新计算数据记录的存储位置,将需要跨Flash页存储的数据记录,重新映射到同一个Flash页中,并记录所述数据记录的原逻辑地址与新逻辑地址的映射关系; C、在数据记录读写过程中,根据所述数据库地址映射关系计算所述数据记录的新的逻辑地址,并将所述新的逻辑地址下发给固态硬盘。
2.根据权利要求I所述的数据库优化方法,其特征在于,所述方法步骤B进ー步包括 根据所述数据记录大小及Flash页大小,计算所述数据库写入放大率PZ及跨页数据记录百分比PE,其中 PZ =(页大小%数据记录大小)/页大小*100%, PE =(数据记录大小-数据记录和页大小的最大公約数)/页大小*100 %。
3.根据权利要求2所述的数据库优化方法,其特征在于,所述方法步骤B进ー步包括 预设所述PZ和PE的阈值; 判断所述PZ和PE是否达到预设阈值,若是,则重新计算数据记录的存储位置,将需要跨Flash页存储的数据记录,重新映射到同一个Flash页中,否则不作处理。
4.一种基于固态硬盘的数据库优化系统,其特征在于,包括 信息获取模块,用于获取数据库信息參数,所述信息參数包括数据库中数据记录长度; 映射处理模块,用于根据所述固态硬盘中的Flash页大小及所述数据库中数据记录长度,重新计算数据记录的存储位置,将需要跨Flash页存储的数据记录,重新映射到同一个Flash页中,并记录所述数据记录的原逻辑地址与新逻辑地址的映射关系; 访问处理模块,在数据记录读写过程中,根据所述数据库地址映射关系计算所述数据记录的新的逻辑地址,并将所述新的逻辑地址下发给固态硬盘。
5.根据权利要求4所述的数据库优化系统,其特征在干,所述映射处理模块包括计算子模块,用于根据所述数据记录大小及Flash页大小,计算所述数据库写入放大率PZ及跨页数据记录百分比PE,其中 PZ =(页大小%数据记录大小)/页大小*100%, PE =(数据记录大小-数据记录和页大小的最大公約数)/页大小*100 %。
6.根据权利要求5所述的数据库优化系统,其特征在于,所述映射处理模块还包括 设置子模块,用于预设所述PZ和PE阈值; 判断子模块,用于判断所述PZ和PE是否达到预设阈值,若是,则重新计算数据记录的存储位置,将需要跨Flash页存储的数据记录,重新映射到同一个Flash页中,否则不作处理。
全文摘要
本发明适用于计算机技术领域,提供了一种基于固态硬盘的数据库优化方法,包括A、获取数据库信息参数,其包括数据库中数据记录长度;B、根据所述固态硬盘中的Flash页大小及所述数据库中数据记录长度,重新计算数据记录的存储位置,将需要跨Flash页存储的数据记录,重新映射到同一个Flash页中,并记录所述数据记录的原逻辑地址与新逻辑地址的映射关系;C、在数据记录读写过程中,根据数据库地址映射关系计算所述数据记录的新的逻辑地址,并将新的逻辑地址下发给固态硬盘。本发明还相应的提供一种实现上述方法的数据库优化系统。借此,本发明可对对数据库进行优化,提高数据库读写访问效率,也进一步提高了固态硬盘的耐用性。
文档编号G06F17/30GK102867046SQ20121032646
公开日2013年1月9日 申请日期2012年9月6日 优先权日2012年9月6日
发明者李明星 申请人:记忆科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1