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

添加评论