[h2db]コンパクションの方法

  h2database

データを登録するとファイルサイズがどんどん大きくなる。
データの削除などで生じたファイル内の空きスペースは自動的に再利用される。

データベースを閉じるとき、デフォルトで200ミリ秒までの範囲で空きスペースの圧縮を試みるが、それ以上の圧縮を望むのであれば、SHUTDOWN CONMAPCTコマンドを使用する。

コンパクション操作はshutdownコマンドでのコネクション切断と共に指定する。

コマンド説明
shutdown compactシャットダウン時にコンパクションを行う。MAX_COMPACT_TIME(ミリ秒)で処理時間上限が決まる。MAX_COMPACT_TIMEはDBオープン時に指定する。
中途半端に短い時間だと作業が完了しないばかりかサイズが増えることもあるので注意。
例) jdbc:h2:C:/db/h2/play;MODE=MYSQL;MAX_COMPACT_TIME=10000
shutdown defragシャットダウン時にページの並べ替えを行う。検索が速くなる可能性あり。
shutdown immediatelyデータベースのクリーンアップやコンパクションなど何もせずにシャットダウンする。

ちなみに、データベースを再作成すれば、索引がリビルドされてデータベースのサイズが更に小さくなる可能性がある。

データベース接続中の圧縮(Vacuum)できない。取り込みたい機能として挙がっているが最優先ではないとのこと。
常時稼働するような用途には向かない理由の一つ。

LEAVE A COMMENT