H2Databaseを追っかけていたりしたブログ

H2 database のリリースノートを読んだりとか。

java

H2でTriggerを試してみる。

H2にもやはりトリガーはあるのですが、PL/SQLやPL/pgSQLのような組み込みの言語がないので、所謂一般的にイメージするトリガーではなく、org.h2.api.Triggerインターフェースを実装したJavaのクラスが呼ばれる、という実装になっています。面倒だ、というの…

関数索引はないけれど

Computed Columns があるから、それに索引つければいいよ!とのこと。 create table birthday(user_id int primary key, birthday date, mon int as month(birthday)); insert into birthday(user_id,birthday) values (1, formatdatetime('2006-10-16','yyy…

H2のEXPLAINを試してみる2

前回の続き。h2では、count(*)で条件なしの単一テーブルでのカウントの際には、テーブルにアクセスしないので速い、とのこと。 sql> explain select count(*) from noprimary; PLAN SELECT COUNT(*) FROM PUBLIC.NOPRIMARY /* PUBLIC.NOPRIMARY.tableScan */…

H2のEXPLAINを試してみる。

データベースのパフォーマンスチューニングで、SQLのチューニング(インデックスの設定含む)は一番効果が大きい。それでいて、SQLのチューニングはポータビリティが高い。メモリの設定、ディスクの設定、パラメータの設定はデータベースごとにまったく異なる(…

H2のクラスタリングを試してみる。

H2では、簡単なクラスタリング機能を持っている。使い方もH2らしく非常に簡単。サーバ(ノード)は2台固定で、障害発生時の復旧は手動。参照系のクエリは1番目のノードに対してのみ実行され、その以外のステートメントは両方のノードに対して実行される(なの…

H2のLuceneを使用した全文検索を試してみる

H2では、組み込みの全文検索関数のほかに、luceneを使った全文検索を組み込む事ができる。ちょっと試してみた。なお、現状公式サイトに載っている手順では日本語を対象として全文検索を実行する事ができない。というのも、LuceneのAnalyzerとして、日本語に…

思い立ってから3分以内にCSVファイルに対してgroup byをかける

CSVファイルに対してgroup byをかけたい、と思う瞬間が技術者だったら必ずあるはずです。手元には、CSVファイルと、Officeが入ったWindowsマシン。Excelでどうにかできたはずだ...と思うものの、なんとなくやってみてもうまくできない。ただ、group byかけた…