教你使用SQLite Vacuum

2021-10-09 19:51:39 字數 1436 閱讀 8244

sqlite 是乙個軟體庫,實現了自給自足的、無伺服器的、零配置的、事務性的 sql 資料庫引擎。sqlite 是在世界上最廣泛部署的 sql 資料庫引擎。sqlite 源**不受版權限制。

vacuum 命令通過複製主資料庫中的內容到乙個臨時資料庫檔案,然後清空主資料庫,並從副本中重新載入原始的資料庫檔案。這消除了空閒頁,把表中的資料排列為連續的,另外會清理資料庫檔案結構。

如果表中沒有明確的整型主鍵(integer primary key),vacuum 命令可能會改變表中條目的行 id(rowid)。vacuum 命令只適用於主資料庫,附加的資料庫檔案是不可能使用 vacuum 命令。

如果有乙個活動的事務,vacuum 命令就會失敗。vacuum 命令是乙個用於記憶體資料庫的任何操作。由於 vacuum 命令從頭開始重新建立資料庫檔案,所以 vacuum 也可以用於修改許多資料庫特定的配置引數。

手動 vacuum

下面是在命令提示符中對整個資料庫發出 vacuum 命令的語法:

$sqlite3 database_name "vacuum;"
您也可以在 sqlite 提示符中執行 vacuum,如下所示:

sqlite> vacuum;
您也可以在特定的表上執行 vacuum,如下所示:

sqlite> vacuum table_name;
自動 vacuum(auto-vacuum)sqlite 的 auto-vacuum 與 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

您可以從命令提示符中執行下面的命令來檢查 auto-vacuum 設定:

$sqlite3 database_name "pragma auto_vacuum;"
linux就該這麼

教你使用shell陣列

陣列的使用,需要掌握 1 對陣列進行賦值 2 通過下標訪問陣列元素 3 迴圈遍歷所有的元素 如下 01 bin bash 02 03a 39 04b 5 05c 36 06d 12 07e 9 08f 35 09 對陣列進行賦值 10values a b c d e f 11 values 39 5...

教你怎麼使用git

安裝git apt get install git 建立本地倉庫 mkdir test git初始化 cd test git init 生成公鑰和私鑰 ssh keyge 將公鑰新增到github裡。git的使用 分支操作 轉殖倉庫 git clone 建立本地分支 git branch 分支名 建...

教你使用SQLite 注入

sqlite 是乙個軟體庫,實現了自給自足的 無伺服器的 零配置的 事務性的 sql 資料庫引擎。sqlite 是在世界上最廣泛部署的 sql 資料庫引擎。sqlite 源 不受版權限制。sqlite 注入 如果您的站點允許使用者通過網頁輸入,並將輸入內容插入到 sqlite 資料庫中,這個時候您就...