やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

SQLite3構文 vacuum

 DBファイル最適化。

成果物

構文

効果

  • データの挿入・更新・削除されるとDBファイルが断片化してしまう
    • 並び替えて解消する。速度向上
    • ページ数を圧縮。ファイルサイズ減

使い方

sqlite3 a.db "vacuum;" "reindex;"

 データベースファイル内の未使用ページ数があるとき、実行するとファイルサイズ数減。

pragma freelist_count;

 ページサイズは以下で取得できる。freelist_count * page_size = 減量サイズ。デフォルトでは4096Byte。

pragma page_size;

vacuum

sqlite3 a.db "vacuum;" "reindex;"

vacuum スキーマ名

sqlite3 a.db "attach b.db as b" "vacuum b;"

vacuum into ファイル名

sqlite3 a.db "vacuum into a2.db;"

 別名ファイルa2.dbが新規作成される。

vacuum スキーマ名 into ファイル名

sqlite3 a.db "attach b.db as b" "vacuum b into b2.db;"

 別名ファイルb2.dbが新規作成される。

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux

前回まで