HSQLDBにも対応

現状実装した範囲だと、Derbyと変わるのはCREATE TABLEぐらいなのでHSQLDBにもサクっと対応してみました。CREATE TABLE,DROP TABLEに対応したのは、実のところ、他DBに対応するときにユニットテストが書きやすくなるというのもあるからですが。

どちらもいわゆるIn-Processモードで、

  • DROP TABLE後、CREATE TABLE
  • 1レコードINSERT後、DELETE
  • 2400件弱INSERT
  • 先にINSERTした2400件弱の全件SELECT
  • 条件指定SELECTで先頭1件のみ取得
  • 条件指定SELECTで該当全件取得
  • 1レコードUPDATE
  • 条件指定SELECTで該当全件取得後、取得全件対象UPDATE(ちなみに取得件数は100件弱)

を一致確認・ログ出力等しながら実行したところ、ウチのテスト環境ではHSQLDB 1.8.0.7が4秒台・Derby 10.3.2.1が10秒台あたりで収束します。どちらも特にチューニング等はなにもしない、AS ISでやっていますのでアレですが、この程度の差があるということで。
まー、Eclipseとの相性だとか、組込みしやすさだとかいろいろとありますので、これだけで単純に比較できるものではないですが、同じJavaDB・フットプリントが小さいDBでもAS ISで単純系でも違いは明確にでるということです。