SQLite 3.40 版本已經發布,這是一個設計為插件庫的輕量級 DBMS。 SQLite 代碼分佈在公共領域,即可以不受限制地免費用於任何目的。 SQLite 開發人員的財務支持由專門創建的聯盟提供,該聯盟包括 Adobe、Oracle、Mozilla、Bentley 和 Bloomberg 等公司。
主要變化:
- 一項實驗性功能現已實現,可將 SQLite 編譯為可在 Web 瀏覽器中執行的 WebAssembly 中間程式碼,並適用於透過 JavaScript 組織 Web 應用程式與資料庫的互動。 Web 開發人員將獲得一個高級面向對象接口,用於以 sql.js 或 Node.js 的風格處理數據,一個基於低級 C API 的綁定,以及一個基於 Web Worker 機制的 API,從而可以創建在獨立線程中執行的異步處理程序。 Web 應用程式保存在 WASM 版 SQLite 中的數據,可以使用 OPFS(原始私有檔案系統)或 window.localStorage API 儲存在客戶端。
- 新增了復原擴展,旨在從帶有資料庫的損壞檔案中復原資料。在恢復的命令列介面中,使用命令“.recover”。
- 改進了查詢規劃器的效能。取消了對列數超過 63 的表使用索引的限制(之前,索引不適用於列序數超過 63 的操作)。改進了表達式中使用的值的索引。處理 NOT NULL 和 IS NULL 運算子時,停止從磁碟載入大行和 blob。消除了僅執行一次全掃描的視圖的物化。
- 在程式碼庫中,我們不再使用「char *」類型,而是使用單獨的 sqlite3_filename 類型來表示檔案名稱。
- 新增了內部函數 sqlite3_value_encoding()。
- 新增了SQLITE_DBCONFIG_DEFENSIVE模式,禁止更改資料儲存模式的版本。
- 在「PRAGMA Integrity_check」參數的實作中增加了額外的檢查。例如,未設定 STRICT 標誌的表不得在 TEXT 類型欄位中包含數值,也不得在 NUMERIC 類型欄位中包含帶有數字的字串值。此外,還新增了對帶有「WITHOUT ROWID」標誌的表中行順序正確性的檢查。
- 「VACUUM INTO」語句考慮了「PRAGMA 同步」設定。
- 新增了 SQLITE_MAX_ALLOCATION_SIZE 建構選項來限制分配記憶體時的區塊大小。
- SQLite 的內建偽隨機數產生演算法已從使用 RC4 流密碼切換為 Chacha20。
- 允許在不同的資料模式中使用具有相同名稱的索引。
- 已進行效能最佳化,在典型活動下可將 CPU 負載降低約 1%。
來源: opennet.ru
