内存数据库教程.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内存数据库 常旭 (北京理工大学软件学院(信息安全方向)??) 内容提要:传统的数据库管理系统(比如我们现在学习和使用的微软SQL Server)把所有数据都放在磁盘上进行管理,所以称做磁盘数据库(DRDB:Disk-Resident Database)。而内存数据库(MMDB:MainMemory Database)是利用了内存的高速特性而重新设计实现的另一种不同的数据库,相对于传统磁盘数据库其应用方向也有所不同。而且SQLite这种轻量、开源的内存数据库引擎也随着移动平台和智能手机的发展而在嵌入式领域被广泛使用。论文主要讲述内存数据库的概念原理,以及优缺点的比较。 关?键?词:数据库;内存;SQLite;嵌入式系统; 内存数据库的概念 什么是传统数据库 在了解内存数据库之前,先来了解一下什么是传统数据库。 传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以称做磁盘数据库(DRDB:Disk-Resident Database),即数据的主拷贝(Primary DB)在磁盘上。数据库管理系统为了向应用系统提供存取服务,将用户需要访问的数据装入主存中,再由读取主存里的数据来实现应用需求,即对数据的管理可以说是“基于磁盘的缓存技术。磁盘相对于主存来说是极其低速的存储介质(存取的速度差了三~四个数量级) ,且磁盘存取速度还和欲存取的数据的物理位置和当前磁头状态有关。另外,由于采用磁盘存储,内存缓存机制,管理缓存(cache)或缓冲(buffer),无论是在操作系统(OS)层,还是数据库管理系统层,都需要付出较大的时间和空间代价(尤其是时间代价)。磁盘数据库需要频繁地访问磁盘来进行数据的操作,由于对磁盘读写数据的操作一方面要进行磁头的机械移动,另一方面受到系统调用(通常通过CPU中断完成,受到CPU时钟周期的制约)时间的影响,当数据量很大,操作频繁且复杂时,就会暴露出很多问题。?因此,即使将磁盘数据全部缓存到主存,其管理代价仍较大,存取速度仍然无法满足多数实时性应用系统的要求。 什么是内存数据库 在内存数据库(MainMemory Database,MMDB)中,数据库的全部或活动事务存取的数据放于内存中,这样完全不需要对磁盘进行访问。由于整个数据???放于内存,数据库则不再作为大量存储文件看待而作为内存中可寻址的大量数据。由于理念不同(内存的存取速度相对于磁盘完全不在一个数量级上),所以不同于DRDB中的缓存或缓冲区方式,它完全打破了传统磁盘数据库系统的设计宗旨,带来了其自身新的设计问题。比如传统磁盘数据库系统的数据组织、访问方法、查询处理算法的设计都针对减少磁盘访问次数与有效利用盘存储空间等方面,甚至牺牲CPU时间来减少I/O次数(如查询处理有大量中间数据),而内存数据库的设计不需要考虑磁盘的IO问题,减少了很大一部分数据库设计时的冗余考虑。内存数据库可以针对有效地利用CPU的时间和内存空间来进行全新的设计。对传统磁盘数据库系统相当有效的数据组织、访问方法、查询处理算法,对于内存数据库系统可能并不有效,相反,一些认为对传统磁盘数据库系统无用的办法,反而成为可行的。故内存数据库得益于内存的特性和速度,在性能上有极大提高。 内存数据库和磁盘数据库的比较示意图 由上方的示意图可以看出,MMDB(内存数据库)对磁盘的操作只有LogDisk(在磁盘上记录日志)和BackupDB(数据库的数据备份),而DRDB(磁盘数据库)将PrimaryDB存于外存(磁盘)上,内存中只存有Page Buffer(页面缓存)。 由此可见,内存数据库并不是简单地将数据从磁盘迁移到内存中,而是在整个从体系结构至细节算法上都有着与传统磁盘数据库不同的设计。 内存数据库的起源 目前来看,从雏形期到理论成熟期,再到产品发展和市场成长期,内存数据库的发展大概经历了不到50年的时间。 从上个世纪60年代末到80年代初这个时期中出现了主存数据库的雏形。1969年IBM公司研制了世界上最早的数据库管理系统——基于层次模型的数据库管理系统IMS,并作为商品化软件投入市场。在设计IMS时,IBM考虑到基于内存的数据管理方法,相应推出了IMS/VS Fast Path。Fast Path是一个支持内存驻留数据的商业化数据库,但它同时也可以很好地支持磁盘驻留数据。在这个产品中体现了主存数据库的主要设计思想,也就是将需要频繁访问,要求高响应速度的数据直接存放在物理内存中访问和管理。在这个阶段中,包括网状数据库、关系数据库等其他各种数据库技术也都逐渐成型。? 1984年,D J DeWitt等人发表了《主存数据库系统的实现技术》一文。第一次提出了主存数据库的概念,提出了AVL树、哈希算法、主存数据库恢复机制等主存数据库技术的关键理论,为主存数据库的发展

文档评论(0)

美洲行 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档