h2DBも便利だと思った

PureJAVAのDBで有名なH2。
jar版を使ってコンソールから操作してみた。
yok'sさんのサイトが日本語で詳しく解説している。

H2 Database Engine
http://www.h2database.com/html/main.html
H2 DB Engine インストール・設定 技術メモ
http://homepage2.nifty.com/yoks/TechNote/H2/H2_MnFrm.htm

今回はcsvファイルの比較などをやってみた。
jarファイルをクリックすると、ブラウザが立ち上がり、h2のコンソール画面になる。

JDBC URLで、ファイルの作成パスを指定する。
jdbc:h2:test だと、jar直下にtest.h2.db というファイルが作成される作成される。
ファイル不要なら、 jdbc:h2:mem: で1回きりのメモリーモードとなる。
接続後は、SQLをコマンド入力が可能となる。
Ctrl+Enterで実行し、ボックスの下方部に結果が表で出力される。

今回はcsvファイルが対象なので、下記2つの命令を使う。
それ以外はSQLスタンダードなものだけ。
http://www.h2database.com/html/tutorial.html#csv
1)csvファイルからテーブルを作成。
CREATE TABLE TEST AS SELECT * FROM CSVREAD('test.csv');
2)テーブルをcsvファイルに書き込み。
CALL CSVWRITE('test.csv', 'SELECT * FROM TEST');

とりあえず、2000件くらいのてきとうなcsvファイルをコピーして単純比較してみる。
(select * from A except select * from B) union (select * from B except select * from A)
3msくらいで終わった。

corei3 M280での性能を確かめるため、下記のコードで10,000行をinsertしてみた。

だいたい80~150msになる。普通に使う分には十分だと思う。
http://www.h2database.com/html/performance.html#database_profiling
DROP TABLE IF EXISTS TEST;
CREATE TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR(255));
@LOOP 10000 INSERT INTO TEST VALUES(?, ?);


h2DBも手軽に使えるDBなのだと思う。
PureJAVAなだけに、すぐにJAVAで組み込めるのが便利だ。
簡単な処理をするアプリならすぐに作れそうだ。
HyperSQLも2.0からとても手軽に使えるようになったらしいので、試してみたい。
http://hsqldb.org/

コメント