没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
常用内存数据库介绍
1 内存数据库简介
什么是内存数据库?传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以称作磁盘数据库(DRDB:
Disk-Resident Database)。磁盘数据库需要频繁地访问磁盘来进行数据的操作,由于对磁盘读写数据的操作 ,
一方面要进行磁头的机械移动,另一方面受到系统调用(通常通过 CPU 中断完成,受到 CPU 时钟周期的制约)时
间的影响,当数据量很大,操作频繁且复杂时,就会暴露出很多问题。
近年来,内存容量不断提高,价格不断下跌,操作系统已经可以支持更大的地址空间(计算机进入了 64 位时
代),同时对数据库系统实时响应能力要求日益提高,充分利用内存技术提升数据库性能成为一个热点。
在数据库技术中,目前主要有两种方法来使用大量的内存。
一种是在传统的数据库中,增大缓冲池,将一个事务所涉及的数据都放在缓冲池中,组织成相应的数据结构来
进行查询和更新处理,也就是常说的共享内存技术,这种方法优化的主要目标是最小化磁盘访问。
另一种就是内存数据库(MMDB:Main Memory Database,也叫主存数据库)技术,就是干脆重新设计一种数
据库管理系统,对查询处理、并发控制与恢复的算法和数据结构进行重新设计,以更有效地使用 CPU 周期和内存,
这种技术近乎把整个数据库放进内存中,因而会产生一些根本性的变化。
两种技术的区别如下表:
内存数据库系统带来的优越性能不仅仅在于对内存读写比对磁盘读写快上,更重要的是,从根本上抛弃了磁盘
数据管理的许多传统方式,基于全部数据都在内存中管理进行了新的体系结构的设计,并且在数据缓存、快速算法
并行操作方面也进行了相应的改进,从而使数据处理速度一般比传统数据库的数据处理速度快很多,一般都在 10
倍以上,理想情况甚至可以达到 1000 倍。
而使用共享内存技术的实时系统和使用内存数据库相比有很多不足,由于优化的目标仍然集中在最小化磁盘访
1/13
问上,很难满足完整的数据库管理的要求,设计的非标准化和软件的专用性造成可伸缩性、可用性和系统的效率都
非常低,对于快速部署和简化维护都是不利的。
2 内存数据库的历史和发展
2.1 雏形期
从上个世纪 60 年代末到 80 年代初。在这个时期中,出现了主存数据库的雏形。1969 年 IBM 公司研制了世界
上最早的数据库管理系统------基于层次模型的数据库管理系统 IMS,并作为商品化软件投入市场。在设计 IMS 时,
IBM 考虑到基于内存的数据管理方法,相应推出了 IMS/VS Fast Path。Fast Path 是一个支持内存驻留数据的商业
化数据库,但它同时也可以很好地支持磁盘驻留数据。在这个产品中体现了主存数据库的主要设计思想,也就是将
需要频繁访问,要求高响应速度的数据直接存放在物理内存中访问和管理。在这个阶段中,包括网状数据库、关系
数据库等其他各种数据库技术也都逐渐成型。
2.2 技术理论成熟期
1984 年 , D J DeWitt 等 人 发 表 了 《 主 存 数 据 库 系 统 的 实 现 技 术 》 一 文 。 第 一 次 提 出 了 Main Memory
Database(主存数据库)的概念。预言当时异常昂贵的计算机主存价格一定会下降,用户有可能将大容量的数据
库全部保存在主存中,提出了 AVL 树、哈希算法、主存数据库恢复机制等主存数据库技术的关键理论,为主存数据
库的发展指出了明确的方向 。
1984 年,D J DeWitt 等人提出使用非易逝内存或预提交和成组提交技术作为主存数据库的提交处理方案,使用指
针实现主存数据库的存取访问。
1985 年,IBM 推出了 IBM 370 上运行的 OBE 主存数据库
1986 年,RB Hagman 提出了使用检查点技术实现主存数据库的恢复机制。威斯康星大学提出了按区双向锁定模
式解决主存数据库中的并发控制问题。并设计出 MM-DBMS 主存数据库。贝尔实验室推出了 DALI 主存数据库模型。
1987 年,ACM SIGMOD 会议中提出了以堆文件(HEAP FILE)作为主存数据库的数据存储结构。Southern
Methodist 大学设计出 MARS 主存数据库模型。
1988 年普林斯顿大学设计出 TPK 主存数据库。
1990 年普林斯顿大学又设计出 System M 主存数据库。
2.3 产品发展期和市场成长期
随着互联网的发展,越来越多的网络应用系统需要能够支持大用户量并发访问、高响应速度的的数据库系统,主存
数据库市场成熟,半导体技术快速发展,半导体内存大规模生产,动态随机存取存储器( DRAM)的容量越来越大,
而价格越来越低,这无疑为计算机内存的不断扩大提供了硬件基础,使得主存数据库的技术可行性逐步成熟
1994 年美国 OSE 公司推出了第一个商业化的,开始实际应用的主存数据库产品 Polyhedra
1998 年德国 SoftwareAG 推出了 Tamino Database。
1999 年日本 UBIT 会社开发出 XDB 主存数据库产品。韩国 Altibase 推出 Altibase
2000 年奥地利的 QuiLogic 公司推出了 SQL-IMDB
2001 年美国 McObject 推出 eXtremeDB。加拿大 Empress 公司推出 EmpressDB
2.4 几种主存技术应用的比较
第一代:用户定制的主存数据库。通过应用程序来管理内存和数据;不支持 SQL 语句, 不提供本地存储, 没有数据
库恢复技术;性能好但很难维护和在别的应用中不能使用;应用在实时领域比如工厂自动化生产。
第二代:简单功能的内存数据库。能够快速处理简单的查询;支持部分的 SQL 语句和简单的恢复技术;主要目的
是能够快速处理大量事务;针对简单事务处理领域,尤其是交换机, 移动通信等。
第三代:通用的主存数据库。针对传统的商业关系型数据库领域,能够提供更高的性能、通用性以及稳定性;提供
不同的接口来处理复杂的 SQL 语句和满足不同的应用领域;可以应用在计费、电子商务、在线安全领域,几乎包括
磁盘数据库的所有应用领域。
2.5 目前几种常见的通用内存数据库
名称 说明
eXtremeDB
eXtremeDB 实时数据库是 McObject 公司的一款特别为实时与嵌入式系统数据管理而设计的数据
2/13
库,只有 50K 到 130K 的开销,速度达到微秒级。eXtremeDB 完全驻留在主内存中,不使用文
件系统(包括内存盘)。eXtremeDB 采用了新的磁盘融合技术,将内存拓展到磁盘,将磁盘当做
虚拟内存来用,实时性能保持微秒级的同时,数据管理量在 32BIT 下能达到 20G。
Oracle TimesTen
Oracle TimesTen 是 Oracle 从 TimesTen 公司收购的一个内存优化的关系数据库,它为应用程序
提供了实 时企 业和 行业 (例 如电信、资本市场和国防)所需的即时响应性和非常高的 吞吐
量。Oracle TimesTen 可作为高速缓存或嵌入式数据库被部署在应用程序层中,它利用标准的
SQL 接口对完全位于物理内存中的数据存储区进行操作。
SolidDB
Solid Information Technology 成立于 1992 年,全球总部位于加州 Cupertino,
Solid 数据管理平台将基于内存和磁盘的全事务处理数据库引擎、载体级高可用性及强大的数据复
制功能紧密地融为一体。
Altibase
ALTIBASE 公司从 1999 年就一直致力于内存数据库软件和其应用的开发,提供高性能和高可用性
的软件解决方案。特别适合通信、网上银行、证券交易、实时应用和嵌入式系统领域。目前占据
80%以上内存数据库市场,可以说是当今数据库软件技术的领导者。目前 Altibase 在国内成功案
例也比较多,尤其是在电信行业,已经得到了广泛认可。
3 常用内存数据库
3.1 SQLite
SQLite 是一个小型的 C 程序库,实现了独立的,可嵌入的,零配置的 SQL 数据库引擎。
3.1.1 特性:
事务操作是原子,一致,孤立,并且持久的(ACID),即使在系统崩溃和电源故障之后。
零配置——不需要安装和管理。
实现了绝大多数 SQL92 标准。
整个数据库存储在一个单一的文件中。
数据库文件可以在不同字节序的机器之间自由地共享。
支持最大可达 2T 的数据库。 (241 字节)
字符串和 BLOB 类型的大小最大可达 2G 字节(231 字节)。
小的代码,完整配置的少于 250KB,忽略一些可选特性的少于 150KB。
在大多数常见操作上比流行的客户/服务器数据库引擎更快。
简单,易于使用的 API。
内建 TCL 绑定。 另外提供可用于许多其他语言的绑定。
具有良好注释的源代码,95%经过测试。
独立,没有外部依赖。
源代码位于公共域,可用于任何用途。
SQLite 发行版包含一个独立的命令行访问程序(sqlite),可用于管理 SQLite 数据库,并适合作为一个如何使
用 SQLite 库的例子。
方面 具体要求 必要条件 详细描述
License
是否收费
免费使用
是否开源
开源
是否有技术支持
主要是社区支持,如果需要专业支持需要购买
商业目的的分发版本是否仍要
收费
是 免费
其他
性能 数据容量支持 100000 条以上
记录
是 支持
并发查询处理能力
SQLite 在并发(包括多进程和多线程)读写方面的性能一直不太理
3/13
剩余12页未读,继续阅读
资源评论
老帽爬新坡
- 粉丝: 79
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功