- SQLite 教程
- SQLite - 首頁
- SQLite - 概述
- SQLite - 安裝
- SQLite - 命令
- SQLite - 語法
- SQLite - 資料型別
- SQLite - 建立資料庫
- SQLite - 附加資料庫
- SQLite - 分離資料庫
- SQLite - 建立表
- SQLite - 刪除表
- SQLite - INSERT 查詢
- SQLite - SELECT 查詢
- SQLite - 運算子
- SQLite - 表示式
- SQLite - WHERE 子句
- SQLite - AND & OR 子句
- SQLite - UPDATE 查詢
- SQLite - DELETE 查詢
- SQLite - LIKE 子句
- SQLite - GLOB 子句
- SQLite - LIMIT 子句
- SQLite - ORDER BY 子句
- SQLite - GROUP BY 子句
- SQLite - HAVING 子句
- SQLite - DISTINCT 關鍵字
- 高階 SQLite
- SQLite - PRAGMA 命令
- SQLite - 約束
- SQLite - JOIN 連線
- SQLite - UNION 子句
- SQLite - NULL 值
- SQLite - 別名語法
- SQLite - 觸發器
- SQLite - 索引
- SQLite - INDEXED BY 子句
- SQLite - ALTER 命令
- SQLite - TRUNCATE 命令
- SQLite - 檢視
- SQLite - 事務
- SQLite - 子查詢
- SQLite - AUTOINCREMENT
- SQLite - 注入攻擊
- SQLite - EXPLAIN 命令
- SQLite - VACUUM 命令
- SQLite - 日期和時間
- SQLite - 常用函式
- SQLite 有用資源
- SQLite - 快速指南
- SQLite - 有用資源
- SQLite - 討論
SQLite - VACUUM 命令
VACUUM 命令透過將資料庫內容複製到臨時資料庫檔案,然後從副本重新載入原始資料庫檔案來清理主資料庫。這將消除空閒頁面,使表資料連續對齊,並清理資料庫檔案結構。
VACUUM 命令可能會更改沒有顯式 INTEGER PRIMARY KEY 的表中條目的 ROWID。VACUUM 命令僅適用於主資料庫。無法對附加的資料庫檔案執行 VACUUM 操作。
如果存在活動事務,VACUUM 命令將失敗。對於記憶體資料庫,VACUUM 命令是空操作。由於 VACUUM 命令從頭開始重建資料庫檔案,因此 VACUUM 也可用於修改許多資料庫特定的配置引數。
手動 VACUUM
以下是從命令提示符發出整個資料庫的 VACUUM 命令的簡單語法:
$sqlite3 database_name "VACUUM;"
您也可以從 SQLite 提示符執行 VACUUM,如下所示:
sqlite> VACUUM;
您還可以對特定表執行 VACUUM,如下所示:
sqlite> VACUUM table_name;
自動 VACUUM
SQLite 自動 VACUUM 的作用與 VACUUM 不同,它只將空閒頁面移動到資料庫的末尾,從而減小資料庫大小。這樣做可能會嚴重碎片化資料庫,而 VACUUM 確保了碎片整理。因此,自動 VACUUM 只保持資料庫較小。
您可以透過在 SQLite 提示符下執行以下 pragma 來啟用/停用 SQLite 自動 vacuum:
sqlite> PRAGMA auto_vacuum = NONE; -- 0 means disable auto vacuum sqlite> PRAGMA auto_vacuum = FULL; -- 1 means enable full auto vacuum sqlite> PRAGMA auto_vacuum = INCREMENTAL; -- 2 means enable incremental vacuum
您可以從命令提示符執行以下命令來檢查自動 vacuum 設定:
$sqlite3 database_name "PRAGMA auto_vacuum;"
廣告