データを登録するとファイルサイズがどんどん大きくなる。
データの削除などで生じたファイル内の空きスペースは自動的に再利用される。
データベースを閉じるとき、デフォルトで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)できない。取り込みたい機能として挙がっているが最優先ではないとのこと。
常時稼働するような用途には向かない理由の一つ。