原文链接: http://blog.csdn.net/zhangxinrun/article/details/5716521
1. 内存数据库简介
1.1 概念
一、什么是内存数据库
传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以称做磁盘数据库(DRDB:Disk-Resident Database)。磁盘数据库需要频繁地访问磁盘来进行数据的操作,由于对磁盘读写数据的操作一方面要进行磁头的机械移动,另一方面受到系统调用(通常通过CPU中断完成,受到CPU时钟周期的制约)时间的影响,当数据量很大,操作频繁且复杂时,就会暴露出很多问题。
近年来,内存容量不断提高,价格不断下跌,操作系统已经可以支持更大的地址空间(计算机进入了64位时代),同时对数据库系统实时响应能力要求日益提高,充分利用内存技术提升数据库性能成为一个热点。
在数据库技术中,目前主要有两种方法来使用大量的内存。一种是在传统的数据库中,增大缓冲池,将一个事务所涉及的数据都放在缓冲池中,组织成相应的数据结构来进行查询和更新处理,也就是常说的共享内存技术,这种方法优化的主要目标是最小化磁盘访问。另一种就是内存数据库(MMDB:Main Memory Database,也叫主存数据库)技术,就是干脆重新设计一种数据库管理系统,对查询处理、并发控制与恢复的算法和数据结构进行重新设计,以更有效地使用CPU周期和内存,这种技术近乎把整个数据库放进内存中,因而会产生一些根本性的变化。两种技术的区别如下表:
内存数据库系统带来的优越性能不仅仅在于对内存读写比对磁盘读写快上,更重要的是,从根本上抛弃了磁盘数据管理的许多传统方式,基于全部数据都在内存中管理进行了新的体系结构的设计,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,从而使数据处理速度一般比传统数据库的数据处理速度快很多,一般都在10倍以上,理想情况甚至可以达到1000倍。
而使用共享内存技术的实时系统和使用内存数据库相比有很多不足,由于优化的目标仍然集中在最小化磁盘访问上,很难满足完整的数据库管理的要求,设计的非标准化和软件的专用性造成可伸缩性、可用性和系统的效率都非常低,对于快速部署和简化维护都是不利的。
2. 内存数据库历史和发展
一、雏形期
从上个世纪60年代末到80年代初。在这个时期中,出现了主存数据库的雏形。1969年IBM公司研制了世界上最早的数据库管理系统------基于层次模型的数据库管理系统IMS,并作为商品化软件投入市场。在设计IMS时,IBM考虑到基于内存的数据管理方法,相应推出了IMS/VS Fast Path。Fast Path是一个支持内存驻留数据的商业化数据库,但它同时也可以很好地支持磁盘驻留数据。在这个产品中体现了主存数据库的主要设计思想,也就是将需要频繁访问,要求高响应速度的数据直接存放在物理内存中访问和管理。在这个阶段中,包括网状数据库、关系数据库等其他各种数据库技术也都逐渐成型。
二、技术理论成熟期
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主存数据库。
三、产品发展期和市场成长期
随着互联网的发展,越来越多的网络应用系统需要能够支持大用户量并发访问、高响应速度的的数据库系统,主存数据库市场成熟
半导体技术快速发展,半导体内存大规模生产,动态随机存取存储器(DRAM)的容量越来越大,而价格越来越低,这无疑为计算机内存的不断扩大提供了硬件基础,使得主存数据库的技术可行性逐步成熟
1994年美国OSE公司推出了第一个商业化的,开始实际应用的主存数据库产品Polyhedra
1998年德国SoftwareAG推出了Tamino Database。
1999年日本UBIT会社开发出XDB主存数据库产品。韩国Altibase推出Altibase
2000年奥地利的QuiLogic公司推出了SQL-IMDB
2001年美国McObject推出eXtremeDB。加拿大Empress公司推出EmpressDB
四、几种主存技术应用的比较
第一代:用户定制的主存数据库。通过应用程序来管理内存和数据;不支持SQL语句, 不提供本地存储, 没有数据库恢复技术;性能好但很难维护和在别的应用中不能使用;应用在实时领域比如工厂自动化生产。
第二代:简单功能的内存数据库。能够快速处理简单的查询;支持部分的 SQL语句和简单的恢复技术;主要目的是能够快速处理大量事务;针对简单事务处理领域,尤其是交换机, 移动通信等。
第三代:通用的主存数据库。针对传统的商业关系型数据库领域,能够提供更高的性能、通用性以及稳定性;提供不同的接口来处理复杂的SQL语句和满足不同的应用领域;可以应用在计费、电子商务、在线安全领域,几乎包括磁盘数据库的所有应用领域。
五、目前几种常见的通用内存数据库
eXtremeDB:eXtremeDB实时数据库是McObject公司的一款特别为实时与嵌入式系统数据管理而设计的数据库,只有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在国内成功案例也比较多,尤其是在电信行业,已经得到了广泛认可。
相关推荐
内存数据库是一种特殊的数据库管理系统,它的主要特点是将所有或大部分数据存储在内存中,而不是传统的磁盘上,从而显著提高了数据处理的速度和系统的响应时间。内存数据库的优势在于其高速的读写性能,这是因为内存...
内存数据库简介 内存数据库是一种将整个数据库存储在计算机的主存中,以提高数据库的性能和响应速度的技术。传统的数据库管理系统将所有数据存储在磁盘上,称为磁盘数据库(DRDB:Disk-Resident Database)。磁盘...
#### 二、内存数据库简介 内存数据库是一种主要或完全依赖于计算机主内存(RAM)来存储数据的数据库管理系统。相比传统的磁盘数据库,内存数据库能够显著提高数据访问速度和应用程序响应时间,非常适合需要高速数据...
在本文中,我们将深入探讨如何在Delphi编程环境中利用SQLite3数据库系统,特别是关于本地数据库与内存数据库的使用。SQLite3是一种轻量级、自包含的数据库引擎,它不需要独立的服务器进程,使得在Delphi应用程序中...
#### 一、内存数据库简介 **1.1 内存数据库定义和基本概念** 内存数据库是一种将数据完全加载至内存中的数据库管理系统(DBMS),以此来提高数据访问速度。相较于传统的磁盘数据库,内存数据库通过避免磁盘I/O操作...
#### 其他内存数据库简介 除了BerkeleyDB之外,还有其他几种内存数据库值得一提: 1. **FastDB** - **概述**:FastDB是一种高性能、轻量级的内存数据库管理系统,专注于提供低延迟的数据访问服务。 - **特点**:...
一、Timesten内存数据库简介 Timesten内存数据库将数据存储在内存中,显著提高了数据读取和写入的速度,尤其适合需要快速事务处理和实时分析的业务场景。它支持SQL标准,并且可以与Oracle数据库无缝集成,为应用程序...
### 内存数据库简介 内存数据库是一种主要将数据存储在计算机主内存中的数据库管理系统(DBMS)。相较于传统的基于磁盘的数据库系统,内存数据库能够提供更快的数据处理速度和更高的性能,尤其是在需要对大量数据进行...
### 一、内存数据库简介 内存数据库是一种将所有数据存储在主内存中的数据库管理系统(DBMS)。与传统的硬盘存储数据库相比,内存数据库提供了极高的读写速度,这是因为内存访问速度远高于硬盘访问速度。这种设计非常...
#### 一、BDB内存数据库简介 BDB内存数据库是由Oracle提供的高性能内存数据库解决方案。该数据库基于Berkeley DB技术构建,Berkeley DB是一种嵌入式数据库引擎,以其卓越的性能、可靠性和灵活性而闻名。BDB内存...
### 一、Timesten内存数据库简介 Oracle TimesTen是一款高性能的内存数据库管理系统,它将数据完全存储在服务器的主内存中,从而实现了极高的数据处理速度。相比传统的磁盘数据库,Timesten在交易处理、数据分析、...
内存数据库是一种特殊的数据库管理系统,它的核心特点是将所有数据存储在计算机的内存中,而不是传统的磁盘上。这种设计显著提高了数据处理的速度,因为内存的读写速度远超磁盘,通常能提升应用性能10倍以上。内存...
内存数据库技术简介 内存数据库是一种将数据主要或完全存储在计算机内存中的数据库管理系统。相较于传统的磁盘数据库,内存数据库能够提供更快的数据访问速度,特别是在需要高速读写和实时处理的场景下。随着...
TimesTen 内存数据库简介 TimesTen是一个内存数据库产品,旨在提供快速、可靠且高性能的数据存储解决方案。该产品具有以下特点: * 高性能:TimesTen使用内存存储数据,提供了高性能和低延迟的数据存取。 * 可靠性...
Oracle TimesTen内存数据库是一款专为高性能、实时应用设计的内存优化关系型数据库管理系统。它以其极快的速度和高吞吐量而闻名,尤其适用于电信、金融市场和国防等需要即时响应的行业。TimesTen由三个主要组件构成...
### 内存数据库Redis概述与应用 #### 一、Redis简介 Redis是一种广泛使用的开源内存数据存储系统,它提供了一种高性能的键值存储解决方案。由于其基于内存的特点,Redis能够实现极高的读写速度,这使其成为构建高...
### 内存数据库MonetDB知识点详解 #### 一、MonetDB简介 **MonetDB**是一款高性能的内存数据库管理系统,由荷兰阿姆斯特丹的CWI(Centrum Wiskunde & Informatica)开发,并在之后由MonetDB B.V.继续维护和发展。...
### Altibase内存数据库技术白皮书关键知识点解析 #### 1. Hybrid DBMS 技术简介 ##### 1.1 Hybrid DBMS 基本概念 Hybrid DBMS(混合数据库管理系统)是一种融合了内存数据库(MMDB)和磁盘数据库(DRDB)特性的...