SQLite 資料庫檔案包含一個或多個「頁面」。對於單一資料庫檔案,所有頁面大小相同,但對於不同的資料庫檔案,頁面大小可以是 512 到 65536 之間的任何 2 的次方(含)。
自 SQLite 資料庫檔案格式設計(2003 年)以來,新資料庫的預設 頁面大小 一直是 1024 位元組。這在 2003 年是一個合理的選擇。但在現代硬體上,4096 位元組頁面是一個更快、更好的選擇。因此,從 SQLite 版本 3.12.0(2016-03-29)開始,新資料庫檔案的預設頁面大小已增加到 4096 位元組。
資料庫 快取大小 的上限傳統上預設為 2000 個頁面。SQLite 版本 3.12.0 也將此預設設定變更為「-2000」,表示 2000*1024 位元組,與頁面大小無關。因此,用於頁面快取的記憶體用量上限並未變更。
這些 SQLite 預設行為的變更並非相容性中斷。所有舊版資料庫檔案仍可由較新版本的 SQLite 讀取和寫入,所有新建立的資料庫檔案仍可由舊版 SQLite 函式庫讀取和寫入。唯一變更的是一些預設設定。這應會提升許多應用程式的效能。
雖然大多數應用程式不應注意到任何變更(只會執行得稍快一些),但若發生問題,則可在編譯時使用 C 編譯器的下列選項來還原舊版行為
-DSQLITE_DEFAULT_PAGE_SIZE=1024 -DSQLITE_DEFAULT_CACHE_SIZE=2000
頁面大小和快取大小也可以在執行時使用 page_size pragma 和 cache_size pragma 分別設定或變更。
SQLite 資料庫的最小大小是每個表格和每個索引一個頁面。因此,使用較大的頁面大小時,特定架構的空資料庫大小將增加四倍。然而,一旦資料庫開始填入內容,舊版 1024 位元組頁面資料庫和較新版 4096 位元組頁面資料庫的大小將快速收斂。由於放寬了 bin-packing 約束,一旦加入大量內容,4096 位元組頁面大小實際上可能會產生較小的檔案。
此頁面最後修改於 2022-01-08 05:02:57 UTC