SQLite 3.40 發布

SQLite 3.40 版本已經發布,這是一個設計為插件庫的輕量級 DBMS。 SQLite 代碼分佈在公共領域,即可以不受限制地免費用於任何目的。 SQLite 開發人員的財務支持由專門創建的聯盟提供,該聯盟包括 Adob​​e、Oracle、Mozilla、Bentley 和 Bloomberg 等公司。

主要變化:

  • 實現了將 SQLite 編譯成中間 WebAssembly 代碼的實驗能力,該代碼可以在 Web 瀏覽器中運行,適用於從 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 synchronous”設置。
  • 添加了 SQLITE_MAX_ALLOCATION_SIZE 構建選項以在分配內存時限制塊的大小。
  • SQLite 中內置的用於生成偽隨機數的算法已從使用 RC4 流密碼轉移到 Chacha20。
  • 允許在不同的數據模式中使用同名索引。
  • 已進行性能優化以在典型活動期間將 CPU 負載減少約 1%。

來源: opennet.ru

添加評論