`
yuanke52014
  • 浏览: 22898 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类

内存数据库简介

阅读更多

原文链接: 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年代初。在这个时期中,出现了主存数据库的雏形。1969IBM公司研制了世界上最早的数据库管理系统------基于层次模型的数据库管理系统IMS,并作为商品化软件投入市场。在设计IMS时,IBM考虑到基于内存的数据管理方法,相应推出了IMS/VS Fast PathFast 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公司的一款特别为实时与嵌入式系统数据管理而设计的数据库,只有50K130K的开销,速度达到微秒级。eXtremeDB完全驻留在主内存中,不使用文件系统(包括内存盘)。eXtremeDB采用了新的磁盘融合技术,将内存拓展到磁盘,将磁盘当做虚拟内存来用,实时性能保持微秒级的同时,数据管理量在32BIT下能达到20G
Oracle TimesTen
Oracle TimesTenOracleTimesTen公司收购的一个内存优化的关系数据库,它为应用程序提供了实时企业和行业(例如电信、资本市场和国防)所需的即时响应性和非常高的吞吐量。Oracle TimesTen可作为高速缓存或嵌入式数据库被部署在应用程序层中,它利用标准的 SQL 接口对完全位于物理内存中的数据存储区进行操作。
SolidDB
Solid Information Technology 成立于 1992 年,全球总部位于加州Cupertino
Solid
数据管理平台将基于内存和磁盘的全事务处理数据库引擎、载体级高可用性及强大的数据复制功能紧密地融为一体。
Altibase
ALTIBASE公司从1999年就一直致力于内存数据库软件和其应用的开发,提供高性能和高可用性的软件解决方案。特别适合通信、网上银行、证券交易、实时应用和嵌入式系统领域。目前占据80%以上内存数据库市场,可以说是当今数据库软件技术的领导者。目前Altibase在国内成功案例也比较多,尤其是在电信行业,已经得到了广泛认可。

分享到:
评论

相关推荐

    内存数据库简介.doc

    内存数据库简介.doc内存数据库简介.doc内存数据库简介.doc

    Orip:基于内存数据库的海量数据实时处理解决方案

    Orip:基于内存数据库的海量数据实时处理解决方案 目录 内存数据库简介 orip内存数据库架构 orip内存数据库应用开发框架 orip内存数据库应用案例 orip内存数据库开发

    内存数据库与Hybrid DBMS技术简介

    内存数据库,顾名思义就是将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。同时,内存数据库抛弃了磁盘数据管理...

    memcached-win32-1.4.4-14内存数据库

    可做tomcat集群session共享和内存数据库使用,内含32位和64位,需要64位将64位的三个文件替换到32位中即可;简介如下: Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过...

    高性能内存数据库Redis(基础篇).pdf

    该PPT主要涉及Redis简介、特性、HA和简单的应用场景等四块内容,整体上了解Redis的基础知识,适合入门读者了解Redis。

    物联网数据库如何设计?iot数据库和传统数据库有什么区别?

    本文中主要介绍了传统数据库没有物联网的速度基因,时序数据库的数据存储设计,...当程序挂掉重启时,可以从WAL文件中重新恢复内存中的Cache。Compactor:一般就是压缩转存的模块,当Cache到达阈值后使用Compactor将其转

    揭秘SQL Server 2014有哪些新特性(1)-内存数据库

     SQL Server 2014提供了众多激动人心的新功能,但其中我想最让人期待的特性之一就要算内存数据库了。去年我再西雅图参加SQL PASS Summit 2012的开幕式时,微软就宣布了将在下一个SQL Server版本中附带代号为Hekaton...

    [详细完整版]数据库简介.pdf

    第一章 数据库简介与安装 1. 数据库系统概述 2. 数据存储方式 3. 数据模型 4. 数据库系统的构成 5. MySQL 数据库的安装 数据库系统概述 什么是数据库 数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储...

    Redis数据库简介.docx

    介绍 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序...

    Oracle数据库学习指南

    18. ORACLE数据库简介 19. Oracle数据库密码文件的使用和维护 20. Oracle数据库碎片整理 21. Oracle特殊包 22. Oradim工具的用法 23. PB如何连接Oracle数据库 24. ROLLBACK不能回滚的命令 25. 安装Oracle后,...

    有关数据库服务器基本管理方法简介

    SQL服务器有两种基本管理方法:动态分配和静态分配,用以控制程序可使用的内存数量。动态 分配允许管理员声明一块内存的大小;考虑到它的实际使用,SQL服务器可以分配给其需要占用的内存的最大值,并且在没有使用内存...

    android之SQLite数据库开发详解

    简介: SQLite 是一款非常流行的嵌入式数据库,它支持 SQL 查询,并且只用很少的内存。Android 在运行时集成了 SQLite,所以每个 Android 应用程序都可以使用 SQLite 数据库。对数熟悉 SQL 的开发人员来时,使用 ...

    oracle 12c 数据库 教程

    (一)用户管理的备份简介 101 (二)第一个手工备份和恢复 102 (三)冷备份的脚本 103 (四)热备份的脚本:PLSQL 程序 103 四、用户管理的恢复 105 (一)归档模式下的完全 105 (二)非归档模式下的恢复 7 (三...

    一、数据库简介

    一、数据库简介 1. 什么是数据库 数据库解决了文件的哪些问题 文件的安全性问题 文件不利于数据查询和管理 文件不利于存储海量数据 文件在程序中控制不方便 数据库存储介质 磁盘 内存 2. 数据库分类 关系型数据库...

    sqlyog MYSQL 数据库管理工具

    软件简介 SQLyog 是一个易于使用的、快速而简洁的图形化管理 MYSQL 数据库的工具,它能够在任何地点有效地管理你的数据库。 功能: 1、快速备份和恢复数据; 2、以 GRID / TEXT 格式显示结果; 3、支持客户端挑选...

    ACCESS数据库密码破解专家

    金胜64GB固范态硬盘简介2009年,存储行业丝毫未了改往日沉闷的局面,DDR2内存始据终保持低价位走势,不过硬盘方扩面则是比较喜人,价格据大幅下调,再次给SSD固态目硬盘造成不小的麻烦。 主板基于AMD 78扩5G+SB710...

    Oracle数据库性能优化PDF

    资源名称:Oracle数据库性能优化 PDF内容简介:本书面向实际应用,从多个角度出发,对Oracle优化中的很多关键问题进行了深入全面的探讨,涵盖了Oracle优化的各个技术层面,从内存优化、IO规划及优化,到SQL优化调整...

    NoSQL数据库笔谈

    内存分配 缓存策略 缓存数据库查询 数据冗余与故障预防 Memc ac hed客户端(mc ) 缓存式的Web应用程序架构 性能测试 dbc ac hed Memcached 和 dbcached 在功能上一样吗? 列存系列 Hadoop之Hbase 耶鲁大学之HadoopDB ...

    Oracle Database 10g:数据库管理-课堂练习I

    1 简介 课程目标 1 2 建议日程表 1 3 课程目标 1 4 Oracle 产品和服务 1 5 Oracle Database 10g :“g ”代表网格 1 6 Oracle 数据库体系结构 1 8 数据库结构 1 9 Oracle 内存结构...

    [详细完整版]数据库.pptx

    SQLite 数据库简介 SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常低,在嵌入式设备中,可能只需要几百K的内存...

Global site tag (gtag.js) - Google Analytics