内存数据库评测

banq 09-12-18
         

在当前NoSQL运动和缓存为王的思想推动下,来自Oracle and IBM databases: Disk-based vs In-memory databases一文对Oracle和IBM两个关系内存数据库进行了评测。

IMDB内存关系数据库有三个优势:
1.性能,数据在内存中,不是在磁盘上,没有IO限制。
2.内置失败回复fail-over 的高可靠性HA
3.支持关系schema和 SQL

当前基于磁盘的关系数据库可以处理大量数据,而基于内存的是否也可以呢?作者挑选了市场上主流IMDB产品:Oracle's 11g TimesTen 11g, a IBM's DB2 v9.5 solidDB 6.3.

IMDB关键是支持SQL和存储过程,可以增强关系数据库SQL的支持,并让他们享受高性能的内存数据访问,而采取缓存 in-memory caches策略,则需要一种完全不同的编程范式。

IMDB 第二个亮点是可以作为关系数据库的二级缓存,管理员可以配置管理内存数据库。

作者测试结果发现,使用IMDB, Select可以获得5倍速度,而insert和delete可以获得2倍和4倍性能。

IMDB可以通过水平伸缩获得伸缩性,不过个人以为:因为没有关键的数据复制技术(关系数据的性质决定了关系数据复制的低效率性)。

作者最后认为:可以采取Oracle Coherence, GigaSpaces XAP or GemFire实现盒子之外out-of-the box的透明分区和数据查询.风险是什么呢?就将你那些优美的SQL逻辑重构到面向对象语言(大势所趋,所以新系统就切莫再依赖关系数据库这个盒子了,警世名言啊)。




[该贴被banq于2009-12-18 15:03修改过]

         

4
atester
2009-12-18 21:17

内存数据库与普通数据库,速度差别不大啊,普通数据库应用内存做缓冲的机制应该都做的很好了。顶,受教了。
[该贴被atester于2009-12-18 21:18修改过]

yuer0
2010-01-22 10:45

个人理解还是需要哪些大牛科学家来处理这个问题,我本人喜欢DDD,DDD是赋予对象业务含义,屏蔽数据库的细节。因为对象在内存,所以DDD是内存世界的游戏。
我在隔离数据库的基础上开始考虑真正使用DDD,但是我放弃了,主要在内存数据的各种基础算法的实现上傻了,今天看到内存数据库,我看到了希望。

atester
2010-01-22 14:45

摘录

个人理解还是需要哪些大牛科学家来处理这个问题,我本人喜欢DDD,DDD是赋予对象业务含义,屏蔽数据库的细节。因为对象在内存,所以DDD是内存世界的游戏。
我在隔离数据库的基础上开始考虑真正使用DDD,但是我放弃了,主要在内存数据的各种基础算法的实现上傻了,今天看到内存数据库,我看到了希望。
[/QUOTE]


这个问题很快就会解决了,一旦解决了,这种知识也成了廉价的