SQLiteバキューム
VACUUM コマンドは、マスター データベースの内容を一時データベース ファイルにコピーし、マスター データベースをクリアして、コピーから元のデータベース ファイルを再ロードします。これにより、空きページが削除され、テーブル内のデータが連続するように配置され、データベース ファイル構造がクリーンアップされます。
テーブルに明示的な整数主キー (INTEGER PRIMARY KEY) がない場合、VACUUM コマンドはテーブル内のエントリの行 ID (ROWID) を変更する可能性があります。 VACUUM コマンドはメイン データベースでのみ機能し、VACUUM コマンドを使用してデータベース ファイルを添付することはできません。
アクティブなトランザクションがある場合、VACUUM コマンドは失敗します。 VACUUM コマンドは、あらゆるインメモリ データベースに対する操作です。 VACUUM コマンドはデータベース ファイルを最初から再作成するため、VACUUM を使用して多くのデータベース固有の構成パラメータを変更することもできます。
MANUAL VACUUM
コマンド プロンプトでデータベース全体に対して VACUUM コマンドを発行する構文は次のとおりです:
$sqlite3 database_name "VACUUM;"
次のように SQLite プロンプトで VACUUM を実行することもできます:
sqlite> VACUUM;
また、VACUUM をコマンド プロンプトで実行することもできます。具体的には、次のようにテーブルに対して VACUUM を実行します。
sqlite> VACUUM table_name;
Auto-VACCUM (Auto-VACUUM)
SQLite の Auto-VACUUM は、空きページをデータベースの最後に移動するだけで、データベースの容量を削減します。サイズ。これを行うと、データベースが大幅に断片化されますが、VACUUM は断片化を防止します。したがって、Auto VACUUM はデータベースを小さくするだけです。
SQLite プロンプトで、次のコンパイルを実行することで、SQLite の Auto-VACUUM を有効/無効にできます:
sqlite> PRAGMA auto_vacuum = NONE; -- 0 means disable auto vacuum sqlite> PRAGMA auto_vacuum = INCREMENTAL; -- 1 means enable incremental vacuum sqlite> PRAGMA auto_vacuum = FULL; -- 2 means enable full auto vacuum
コマンド プロンプトから次のコマンドを実行して、自動バキューム設定を確認できます:
$sqlite3 database_name "PRAGMA auto_vacuum;"