CN102867046B - 基于固态硬盘的数据库优化方法及*** - Google Patents
基于固态硬盘的数据库优化方法及*** Download PDFInfo
- Publication number
- CN102867046B CN102867046B CN201210326463.8A CN201210326463A CN102867046B CN 102867046 B CN102867046 B CN 102867046B CN 201210326463 A CN201210326463 A CN 201210326463A CN 102867046 B CN102867046 B CN 102867046B
- Authority
- CN
- China
- Prior art keywords
- data record
- size
- data
- page
- solid state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 239000007787 solid Substances 0.000 title claims abstract description 44
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000013507 mapping Methods 0.000 claims abstract description 27
- 238000005457 optimization Methods 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims description 15
- 230000003321 amplification Effects 0.000 claims description 8
- 238000003199 nucleic acid amplification method Methods 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000000205 computational method Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013386 optimize process Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明适用于计算机技术领域,提供了一种基于固态硬盘的数据库优化方法,包括:A、获取数据库信息参数,其包括数据库中数据记录长度;B、根据所述固态硬盘中的Flash页大小及所述数据库中数据记录长度,重新计算数据记录的存储位置,将需要跨Flash页存储的数据记录,重新映射到同一个Flash页中,并记录所述数据记录的原逻辑地址与新逻辑地址的映射关系;C、在数据记录读写过程中,根据数据库地址映射关系计算所述数据记录的新的逻辑地址,并将新的逻辑地址下发给固态硬盘。本发明还相应的提供一种实现上述方法的数据库优化***。借此,本发明可对对数据库进行优化,提高数据库读写访问效率,也进一步提高了固态硬盘的耐用性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于固态硬盘的数据库优化方法及***。
背景技术
固态硬盘(SolidStateDisk、IDEFLASHDISK)是用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片)组成。固态硬盘的接口规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘一致。广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空等、导航设备等领域。固态硬盘Flash介质特性决定了:1)对Flash读写是以页为单位的;2)Flash擦写次数是有限制的,MLC约一万次,SLC约十万次。所以,在基于固态硬盘的计算机***中,同样的主机数据访问情况下,Flash介质读写次数越少,访问数据越快,而Flash页写操作越少,固态硬盘的寿命也越长。
在目前固态硬盘的数据库应用中,由于数据库中记录大小并不确定,保存在固态硬盘上的数据与Flash页可能是非对齐的。如图1所示,在读写过程中,对保存在跨Flash页的数据记录,如图1中的数据记录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页中读写记录的情况。同时,通过储存数据记录的原逻辑地址与新逻辑地址的映射关系,可使数据库下次被访问时对访问数据进行逻辑地址的转换,将真实的逻辑地址发送到固态硬盘进行访问处理。
附图说明
图1是现有技术一实施例的数据记录的储存分布示意图;
图2是本发明一实施例的数据库优化***的结构示意图;
图3是本发明另一实施例的数据库优化***的结构示意图;
图4是本发明一实施例的数据记录的储存分布示意图;
图5是本发明一实施例的数据库优化方法的流程图;
图6是本发明另一实施例的数据库优化方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图2,本发明提供了一种基于固态硬盘的数据库优化***,该***100具体包括信息获取模块10、映射处理模块20及访问处理模块30,其中:
信息获取模块10用于获取数据库信息参数,该数据库信息参数包括数据库中数据记录长度。
映射处理模块20,用于根据所述固态硬盘中的Flash页大小及所述数据库中数据记录长度,重新计算数据记录的存储位置,将原本映射到Flash页边界,需要跨Flash页存储的记录,重新映射到同一个Flash页中。图1中示出了数据记录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页中读写记录的情况。同时,通过储存数据记录的原逻辑地址与新逻辑地址的映射关系,可使数据库下次被访问时对访问数据进行逻辑地址的转换,将真实的逻辑地址发送到固态硬盘进行访问处理。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (2)
1.一种基于固态硬盘的数据库优化方法,其特征在于,所述方法包括:
A、获取数据库信息参数,所述信息参数包括数据库中数据记录长度;
B、根据所述固态硬盘中的Flash页大小及数据库中数据记录长度,重新计算数据记录的存储位置,将需要跨Flash页存储的数据记录,重新映射到同一个Flash页中,并记录所述数据记录的原逻辑地址与新逻辑地址的映射关系;
C、在数据记录读写过程中,根据所述数据库的地址映射关系计算所述数据记录的新的逻辑地址,并将所述新的逻辑地址下发给固态硬盘;
所述方法步骤B进一步包括:
根据数据记录大小及Flash页大小,计算所述数据库的写入放大率PZ及跨页数据记录百分比PE,其中:
PZ=(页大小%数据记录大小)/页大小*100%,
PE=(数据记录大小-数据记录和页大小的最大公约数)/页大小*100%;
所述方法步骤B进一步包括:
预设所述PZ和所述PE的阈值;
判断所述PZ和所述PE是否达到预设阈值,若是,则重新计算数据记录的存储位置,将需要跨Flash页存储的数据记录,重新映射到同一个Flash页中,否则不作处理。
2.一种基于固态硬盘的数据库优化***,其特征在于,包括:
信息获取模块,用于获取数据库信息参数,所述信息参数包括数据库中数据记录长度;
映射处理模块,用于根据所述固态硬盘中的Flash页大小及所述数据库中数据记录长度,重新计算数据记录的存储位置,将需要跨Flash页存储的数据记录,重新映射到同一个Flash页中,并记录所述数据记录的原逻辑地址与新逻辑地址的映射关系;
访问处理模块,在数据记录读写过程中,根据所述数据库的地址映射关系计算所述数据记录的新的逻辑地址,并将所述新的逻辑地址下发给固态硬盘;
所述映射处理模块包括计算子模块,用于根据数据记录大小及Flash页大小,计算所述数据库的写入放大率PZ及跨页数据记录百分比PE,其中:
PZ=(页大小%数据记录大小)/页大小*100%,
PE=(数据记录大小-数据记录和页大小的最大公约数)/页大小*100%;
所述映射处理模块还包括:
设置子模块,用于预设所述PZ和所述PE阈值;
判断子模块,用于判断所述PZ和所述PE是否达到预设阈值,若是,则重新计算数据记录的存储位置,将需要跨Flash页存储的数据记录,重新映射到同一个Flash页中,否则不作处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210326463.8A CN102867046B (zh) | 2012-09-06 | 2012-09-06 | 基于固态硬盘的数据库优化方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210326463.8A CN102867046B (zh) | 2012-09-06 | 2012-09-06 | 基于固态硬盘的数据库优化方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102867046A CN102867046A (zh) | 2013-01-09 |
CN102867046B true CN102867046B (zh) | 2016-08-03 |
Family
ID=47445915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210326463.8A Expired - Fee Related CN102867046B (zh) | 2012-09-06 | 2012-09-06 | 基于固态硬盘的数据库优化方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102867046B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9430508B2 (en) | 2013-12-30 | 2016-08-30 | Microsoft Technology Licensing, Llc | Disk optimized paging for column oriented databases |
US9723054B2 (en) | 2013-12-30 | 2017-08-01 | Microsoft Technology Licensing, Llc | Hierarchical organization for scale-out cluster |
US9898398B2 (en) | 2013-12-30 | 2018-02-20 | Microsoft Technology Licensing, Llc | Re-use of invalidated data in buffers |
CN103823881B (zh) * | 2014-03-04 | 2017-07-28 | 北京京东尚科信息技术有限公司 | 分布式数据库的性能优化的方法及装置 |
CN107797755B (zh) * | 2016-09-05 | 2021-01-08 | 上海宝存信息科技有限公司 | 固态硬盘***的原子写入方法以及使用该方法的装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719052A (zh) * | 2009-12-22 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 一种写数据的方法、装置及*** |
CN101819509A (zh) * | 2010-04-19 | 2010-09-01 | 清华大学深圳研究生院 | 一种固态硬盘读写方法 |
CN102289473A (zh) * | 2011-07-27 | 2011-12-21 | 迈普通信技术股份有限公司 | 一种多服务器分页查询的装置及方法 |
CN102591748A (zh) * | 2011-12-29 | 2012-07-18 | 记忆科技(深圳)有限公司 | 固态硬盘及其掉电保护方法、*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2592551A3 (en) * | 2008-03-11 | 2013-08-28 | Agere System Inc. | Methods and apparatus for storing data in a multi-level cell flash memory device with cross-page sectors, multi-page coding and per-page coding |
-
2012
- 2012-09-06 CN CN201210326463.8A patent/CN102867046B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719052A (zh) * | 2009-12-22 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 一种写数据的方法、装置及*** |
CN101819509A (zh) * | 2010-04-19 | 2010-09-01 | 清华大学深圳研究生院 | 一种固态硬盘读写方法 |
CN102289473A (zh) * | 2011-07-27 | 2011-12-21 | 迈普通信技术股份有限公司 | 一种多服务器分页查询的装置及方法 |
CN102591748A (zh) * | 2011-12-29 | 2012-07-18 | 记忆科技(深圳)有限公司 | 固态硬盘及其掉电保护方法、*** |
Also Published As
Publication number | Publication date |
---|---|
CN102867046A (zh) | 2013-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106448737B (zh) | 读取闪存数据的方法、装置以及固态驱动器 | |
US8407397B2 (en) | Block management method for flash memory and controller and storage system using the same | |
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
CN104699417B (zh) | 数据储存装置以及其数据存取方法 | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
US9880742B2 (en) | Valid data merging method, memory controller and memory storage apparatus | |
TWI385517B (zh) | Storage device and data management method | |
CN103049394A (zh) | 固态硬盘数据缓存的方法及其*** | |
CN102867046B (zh) | 基于固态硬盘的数据库优化方法及*** | |
US9268688B2 (en) | Data management method, memory controller and memory storage apparatus | |
US10922234B2 (en) | Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive | |
US8429339B2 (en) | Storage device utilizing free pages in compressed blocks | |
US8812772B2 (en) | Data merging method for non-volatile memory and controller and storage apparatus using the same | |
CN102981969A (zh) | 重复数据删除的方法及其固态硬盘 | |
US9009442B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US10558562B2 (en) | Data storage device and operating method thereof | |
US20140089566A1 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
CN110597741B (zh) | 一种l2p表的读写、更新方法及l2p表 | |
CN102880432A (zh) | 利用数据有限寿命提高闪存芯片写入速度的方法、***及其控制器 | |
US10289334B2 (en) | Valid data merging method, memory controller and memory storage apparatus | |
CN106055488B (zh) | 数据储存设备及其操作方法 | |
CN102362263A (zh) | Ssd控制器与ssd控制器的操作方法 | |
JP5953245B2 (ja) | 情報処理システム | |
CN102541463B (zh) | 快闪存储装置及其数据存取方法 | |
US10474569B2 (en) | Information processing device including nonvolatile cache memory and processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160803 |