一、引言
在很多项目中,经常会碰到这样的需求,需要对大量数据进行快速存
储、查询、删除等操作,特别是在一些针对诸如运营商、银行等大型
企业的应用中,这些需求尤为常见。比如智能网中的大量在线并发用
户的数据管理、软交换平台中的在线信息交互、宽带/3G 等数据网中
在线用户行为记录等等。
针对这些情形,我们通常需要选择高性能的数据库产品,而且通常需
要使用内存数据库,顾名思义,内存数据库指的是所有的数据访问控
制都在内存中进行,这是与磁盘数据库相对而言的,磁盘数据库虽然
也有一定的缓存机制,但都不能避免从外设到内存的交换,而这种交
换过程对性能的损耗是致命的,目前主流数据库如 SYBASE、ORACLE
等都有这种缓存机制,如将特定表绑定一定的缓存,从而在一定程度
上改善数据吞吐性能。而内存数据库几乎可以完全避免这种内外存数
据交换的发生,特别是在物理内存足够大的设备上尤其如此,通常这
种数据库也被称为主存数据库(Main Memory DataBase, MMDB)。
二、主存数据库比较
目前比较知名的商业内存数据库有,ORACLE 的 TimesTen,MCObject
的 eXtremeDB、韩国的 Altibase 等,这些数据库产品性能都非常的
强劲,当然价格也相当的强劲,在非特大型系统建设时,通常让人望
而却步。于是退而求其次,免费开源内存数据库给了我们第二种选择。
Berkeley DB,SQLite,MonetDB,FastDB,H2 等,不一而足。本文主
要针对 SQLite 和 FastDB 进行性能测评。