谁能够告诉我,内存数据库具体什么含义?以及用于何种场合?能够介绍一下内存数据库的详细信息吗?
多谢。

解决方案 »

  1.   

    内存数据库,顾名思义就是将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。同时,内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多,一般都在10倍以上。内存数据库的最大特点是其“主拷贝”或“工作版本”常驻内存,即活动事务只与实时内存数据库的内存拷贝打交道。 
      定义:设有数据库系统DBS,DB为DBS中的数据库,DBM(t)为在时刻t,DB在内存的数据集,DBM(t)属于DB。TS为DBS中所有可能的事务构成的集合。AT(t)为在时刻t处于活动状态的事务集,AT(t)属于TS。Dt(T)为事务T在时刻t所操作的数据集,
      Dt(T)属于DB。若在任意时刻t,均有:
      任意T属于AT(t) Dt(T)属于DBM(t)
      成立,则称DBS为一个内存数据库系统,简称为MMDBS;0B为一个内存数据库,简称为MMDB。
      

  2.   

    尽管内存数据库已不是传统磁盘数据库的概念,但是内存数据库本质上还是数据库,它也具有一般数据库的基本功能: 
    ■ 永久数据的管理,包括数据库的定义、存储、维护等; 
    ■ 完成各种数据操作,如查询处理、存取、完整性检查; 
    ■ 事务管理,包括调度与并发控制等; 
    ■ 对存取的控制和安全性检验; 
    ■ 具有数据库的可靠性恢复机制。 
    相对于利用程序开发手段调用内存处理来说,内存数据库自有其优势。首先,内存数据库是产品化的数据库管理软件,极 
    大缩短了开发周期; 其次,内存数据库有着开放的平台和接口,程序开发和移植更加灵活便捷,也便于维护和二次开发; 
    第三,可以通过使用统一的SQL语言方便地查询内存中的数据; 
    最后,能在数据库中保障数据的安全性和完整性。这些优势,对于快速部署和简化维护都是有利的。
      

  3.   

    http://blog.csdn.net/firefoxboy/archive/2008/10/19/3104639.aspx
      

  4.   

    如何建立SQLSERVER的内存数据库.  http://topic.csdn.net/u/20090313/10/e90163f0-e36c-43a7-81d1-4095c33a5a3e.html?seed=1922876051现在的内存便宜,16G以上内存的服务器已不少见.大内存的确让你的服务器运行程度加快了不少.但有些分析报表,总产生N个中 间的表,数据在里面倒来倒去,从这个表合计到那个表.不但速度很慢,而且,这个过程还有可能影响了正常的业务.减慢了服务器的响 应时间. 
        也经常有人出于业务的考虑,如某些系统要实时数据采集,有些系统可能每秒有上万条的 INSERT INTO 量.我看了一下相关的 回复,大体上都是增加硬盘,应用分布式管理,表分区等等..一句话.基本上是砸钱加硬件.  :) .这的确是好办法.不过,现在是经济 危机,尤其是中小型企业,每一分钱都算得紧紧的,我相信你这个DBA也很难向老板开口. 
        不扯了,如果真的要在内存中建一个数据库,不难,很简单. 
      
    1.下载一个 ramdisk 或类拟的软件,先在2G左右的内存虚拟成一个硬盘. 
    2.在你的实体硬盘上建立一个空的数据库(直接在虚拟盘中建库是不可能的). 设置这个库的事务方式为简单. 
    3.分离这个新建的库. 
    4.将这个库 COPY 到你的虚拟盘上,然后附加. 我在我的电脑上测试:L730T + 2G + 320G. 
    100万条,基本是每秒 INSERT INTO 20000 条左右,而且,这个数据很平稳.     OK,你的内存数据库完成了. 
        以后呢,凡是分析报表扯到的临时中间表,都可以放到这个库里,用完就KILL,或者你有很多实时数据要采集,也放到这个库里(要注意隔一定时间回写到实体表,还要注意断电.  :)