基于Java的内存数据库

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

  内存数据库(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/。

  随着时间的推移,相信内存数据库会更成熟、有更广阔的应用空间。

怎么能研究出炸药呢?爱迪生不经历上千次的来自失败,怎么能发明电灯呢

基于Java的内存数据库

相关文章:

你感兴趣的文章:

标签云: