Apache DerbyとHSQLDB

この2つ、ブログやオンラインの記事にいっしょに出てきたりして、混乱するので自分なりにまとめてみました。

Apache Derby

IBMがCloudscapeのコードをApacheにdonationした結果生まれたオープンソースのPure Java RDBMS。現在、SunのJava DBとIBMのCloudscapeの2つのディストリビューションがある。Java DBはJava 6(Mustang)やNetBeansに組み込まれた。HSQLDBよりはheavyweight(2MB)。

HSQLDB

以前はHypersonicDBという名前だったらしい。オープンソースのPure Java SQL DB(RDBMSではない)。いろいろなところで組み込まれて使われている。有名どころではOpenOfficeに組み込まれている。Hibernateと一緒に使われることが多い。Derbyよりもlightweight(600KB)。

DerbyとHSQLDBの同じところ

DerbyとHSQLDBの違うところ

パフォーマンスは?

HSQLDBがものすごく速いそうです。"Performance Benchmarking of Embedded Databases(http://jamie.ideasasylum.com/notebook/performance-benchmarking-of-embedded-databases/)"にベンチマークの結果が出ていますが、これを見るとDerbyはMySQLよりもかなり速いですが、それでもHSQLDBに比べるとものすごく遅い感じです。ただし、2年くらい前のデータなのでその後変わったかもしれません。

その他

*1:Atomicity,Consistency,Isolation,Durability (http://www.geocities.com/mailsoftware42/db/#acid)参照。ビジネスの世界ではACID compliantであることが重要らしい