基于Java的内存数据库Java认证考试
文章作者 100test 发表时间 2010:04:23 22:31:28
来源 100Test.Com百考试题网
内存数据库(in-memory database,IMDB)是指那些完全用主存作为数据存储的数据库管理系统,由于节省下来磁盘的I/O开销,与基于磁盘的传统数据库管理系统而言效率要高很多。
内存数据库非常适合在
小规模数据应用
快速原型系统实现
软件测试
等场景中应用。还清晰记得记得当时我们在一个项目中即想利用数据库的查询优化、但是数据量又小到足以被内存容纳的情况下,满街找DB2中类似的开关……
现在有不少比较成熟基于Java的内存数据库,使用起来跟连接一个jar没什么区别。下面介绍我使用过的一些开源免费的产品。
HSQLDB
HSQLDB是一个开源免费的纯Java数据库,与ANSI-92 SQL兼容得不错,速度非常快,而且同时支持嵌入式和C/S模式。1.8.0.10整个jar包仅仅700K,使用起来跟普通jar包没有不同。如果没有弄错的话,HSQLDB还被OpenOffice采用。期待1.9.0早日来到。主页:http://hsqldb.org/。
H2
个人觉得H2是HSQLDB的一个重写。非常快(感觉比HSQLDB更快)、开源免费、提供JDBC和ODBC接口,同时支持嵌入式、C/S模式以及阵列模式,仅仅占用1M左右的内存。此外,H2还很贴心地提供了一个很小的基于Applet的SQL工具。在我的使用过程中,感觉H2与HSQLDB一样对SQL 92支持得很不错。主页:http://www.h2database.com/。
Apache Derby
源自IBM的数据库,与HSQLDB和H2想比,主要感觉速度慢,而且对SQL 92的兼容性不佳,个别被MySQL支持的语句都无法顺利在Derby上执行。还有些bug,虽然在升级包中修复了。虽然如此,Derby被捐献到 Apache基金后,相信会有更大的作为吧。主页:http://db.apache.org/derby/。
随着时间的推移,相信内存数据库会更成熟、有更广阔的应用空间。