内存数据库优于查询存储结构探究和设计

内存数据库优于查询存储结构探究和设计

ID:5936780

大小:31.00 KB

页数:9页

时间:2017-12-29

内存数据库优于查询存储结构探究和设计_第1页
内存数据库优于查询存储结构探究和设计_第2页
内存数据库优于查询存储结构探究和设计_第3页
内存数据库优于查询存储结构探究和设计_第4页
内存数据库优于查询存储结构探究和设计_第5页
资源描述:

《内存数据库优于查询存储结构探究和设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、内存数据库优于查询存储结构探究和设计  摘要:以内存数据库数据存储结构研究重点,以提高数据查询效率为目的,提出在内存数据库现有的N-Array存储结构中利用离散存储结构思想对其改进的方案,并给出具体的设计及实现方式。随后以属性选择查询为主要评估点,对N-Array存储结构和改进的存储结构的查询效率进行全方位分析和对比,最后得出结论:改进的存储结构在属性的选择查询上能更好的利用到系统的缓存优势,在内存数据库的查询效率上它是有意义的。关键词:内存数据库;存储结构;查询效率;缓存中图分类号:TP391文献标识码:A文章编号:1671-7597

2、(2012)1210064-02随着当今的应用对数据库的要求越来越高,尤其表现在高实时性的要求上,传统的磁盘数据库已经开始显得很疲惫,很难再有更多的提高[1]。在磁盘数据库系统中,数据是以文件格式存储在磁盘上,而在内存数据库中,数据以数据本身的形式直接存储在主存中;同时内存又有着读写速度比磁盘快、相比于磁盘顺序访问的随机访问,所有的的这些特点这些都使得内存数据库在实时性上有着比磁盘数据库先天的优势。目前在国内,中国联通的BSS(BusinessSport9Sysem,业务支撑系统),中国移动的Boss(Business&Operatio

3、nSupportSystem,业务运营支撑系统),中国电信的SIN(SharedInformationData,共享信息数据平台),以及HLR(HomeLocationRegister,归属位置寄存器)、VLR(VisitorLoeationRegister,拜访位置寄存器)等,都己开始采用了内存数据库技术[2]。内存数据库的研究及应用正朝者越来越深入与广泛的方向迈进[3]。1内存数据库查询优化的关键点数据库的查询优化依赖于数据的存储方法、索引的结构等[4]。在查询优化的策略上,内存数据库和磁盘数据库关键点却是不同的:磁盘数据库查询优化

4、的关键是减少磁盘的访问量(有时甚至用牺牲CPU时间代价的方式来减少磁盘I/O次数)。在内存数据库系统中,当前活动的事务需要访问的所有数据都在内存中,这样就完全没有了事务对磁盘的访问,数据的存在形式不再作为大量磁盘上存储的文件看待而作为内存中能直接寻址到的大量数据。由于通过指针访问数据,I/O不再是系统瓶颈,内存空间利用率和CPU的访问效率则成了内存数据库查询效率优化的关键[5]。9目前市场上虽然已经存在了一些商业化的内存数据库产品,但它们都不是很成熟。这些产品在存储结构的设计上,更多注重于内存空间的利用率,而忽略了CPU的内存访问效率及

5、缓存的利用问题。这也导致现有内存数据库存储结构已成为当前内存数据库性能可逾越的一大瓶颈。所以业界对内存数据库的新的存储结构的研究与改进也一直在进行中。2改进存储结构的研究与设计2.1改进存储结构的提出在N-Array存储结构中数据表中的记录是连续存放的,并且在记录内部,记录的属性也是按顺序存储。这种结构是非常节省存储空间的,而且实现起来也相对比较简单,目前主流的内存数据库包括SQLite、fastDB、eXtremDB都采用有这种存储结构对数据进行存储。然而在内存数据库的实际应用中,N-Array存储结构查询效率却不够理想,尤其是在遇到

6、属性选择查询时。因为在N-Array存储结构中,查询程序要访问某条记录的属性前必须要先要访问到整条记录,然后根据属性在记录内部具体的偏移位置拿到具体的属性值。因此在执行属性选择查询过程中,CPU会产生一些不必要的内存访问;再加上相同的属性值在内存中的不连续分布,查询时也很难充分利用到缓存。9在离散存储结构中,在对表的数据进行存储时先对表按照其属性进行分区,将一个完整的表划分为多个单独的子表,每个子表存储与原表中对应属性的数据。离散存储结构对表进行分区的思想就是以对提高属性查询效率为初衷的。因为把数据表中相同属性的值存放在一起,在根据某一

7、属性查询时,查询程序就可以直接在相应的子表中进行,这能大大减少了对数据存储区域的访问。再加上相同属性值在内存中连续紧密分布特性,在属性选择查询时CPU也能更有效的利用到缓存。但是离散存储结构也有它非常明显的局限性,当属性分区过多,查询性能会下降的特别厉害。由于在离散存储结构中同一条记录属性值的离散分布,它必须要处理数据重组问题。把属于同一记录的属性值组装到一起必须要做子表与子表的连接操作,理论上两个表做连接操作的代价与这两个表的各自记录数相乘的结果成正比,即笛卡尔积。在离散存储结构中,CPU的处理时间会因数据重组而大幅度增加,同时这种数

8、据重组的中间结果也需要大量临时内存来保存直到查询结束,这往往使得离散存储结构有点得不偿失。2.2改进存储结构的设计与实现改进的存储结构是在N-Array存储结构的上的改进,页面依然作为最基本数据储存单元,一

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。