SQLite 3.53.0版本发布,重要更新

SQLite 官方团队于 2026 年 4 月 9 日 发布了 SQLite 3.53.0 版本。本次更新在稳定性修复的基础上,引入了多项 SQL 语言能力增强、CLI 工具革新以及新的 C API 接口,整体属于强烈推荐升级的重要版本。

关键稳定性修复

SQLite 3.53.0 版本修复了 WAL-reset 场景下可能导致数据库损坏的严重缺陷。该问题影响使用 WAL(Write‑Ahead Logging)模式的数据库,在异常重启或特定事务序列下可能触发数据损坏。

本次修复显著提升了 WAL 模式下的可靠性,使用 WAL 模式的系统建议尽快升级至 3.53.0。

SQL语言能力增强

ALTER TABLE 现在可以支持添加、移除 NOT NULL 约束,支持添加、移除CHECK 约束;进一步补齐了 SQLite 在表结构演进方面的能力,与主流关系型数据库更加接近。

新增 SQL 语句 REINDEX EXPRESSIONS,用于重建表达式索引,可以修复陈旧表达式索引(stale expression indexes)问题,也是 3.52.x 系列撤回事件后的重要修复与增强手段。

新增内置 JSON 函数 json_array_insert()、jsonb_array_insert(),进一步增强了 SQLite 对 JSON/JSONB 数据结构的原生操作能力。

TEMP 触发器现在可以查询和修改 main 模式中的表,对于依赖 TEMP 触发器做跨模式操作的程序尤为有用。

当 VACUUM INTO 的目标文件使用 URI 文件名并且 URI 中包含 reserve=N(0--255)参数时,新生成的数据库将使用相同的 reserve。

CLI重大改进

SQLite 3.53.0 引入了全新的 Query Result Formatter(查询结果格式化库),并且已经集成到了 CLI(命令行工具)中。

交互式 CLI 现在默认使用 Unicode 画框表格展示结果;数值字段默认右对齐,整体可读性显著提升;批处理模式保持旧输出格式,确保脚本兼容性。

同时,CLI 还包含了多项实用增强:

  • .mode 命令大幅增强;
  • .indexes 命令的 pattern 参数改为匹配索引名;
  • .progress 名新增 --timeout 参数;
  • .timer once 支持仅统计下一条 SQL;
  • 自动加载 .sql 或者 .txt 文件作为脚本执行;
  • 修复 .testcase 以及 .check 命令长期存在的问题。

新增与增强的 C API

SQLite 3.53.0 同步扩展了底层接口能力,新增函数:

  • sqlite3_str_truncate();
  • sqlite3_str_free();
  • sqlite3_carray_bind_v2();
  • sqlite3_prepare_v3() 新增 SQLITE_PREPARE_FROM_DDL 选项;
  • 新增常量 SQLITE_UTF8_ZT;
  • 新增选项 SQLITE_LIMIT_PARSER_DEPTH、SQLITE_DBCONFIG_FP_DIGITS

查询规划器改进

SQLite 3.53.0 对查询规划器进行了多项深度优化,尤其针对复杂查询和数据仓库类负载:

  • EXCEPT、INTERSECT、UNION 集合操作统一改为排序加归并(sort-and-merge)算法,取代过去的哈希表方式,在绝大多数场景下性能更优、内存使用更稳定。
  • 星型模型(Star Schema)优化,改进大规模多表 JOIN 场景下的连接顺序选择,优化数据分析、报表类查询。
  • EXISTS-to-JOIN 优化增强,新生成的 JOIN 不再必须位于最内层循环,只要依赖关系满足,即可放置在外层,提升复杂子查询的可优化空间。
  • omit-noop-join 优化增强,现在可以一次性省略整个不影响结果的 JOIN 链,减少不必要的表访问与循环层级。
  • GROUP BY、ORDER BY 索引复用,允许如下形式的查询使用单一索引进行优化,前提是当 e1 与 e2 只有 ASC、DESC 顺序上不同:GROUP BY e1 ORDER BY e2。
  • 虚拟表 DISTINCT 优化,在结果集与 ORDER BY 不完全一致的场景下允许虚拟表自行优化 DISTINCT。

其他更新

SQLite 3.53.0 还重写了浮点数与文本之间的转换逻辑,正式引入 Self‑Healing Index(索引自愈)机制,增强了 Session 扩展接口,正式停止支持 Windows RT,更新了 JavaScript / WASM 平台。

完整的发行说明参考:

https://sqlite.org/releaselog/3_53_0.html

相关推荐
倔强的石头_3 小时前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
冬奇Lab16 小时前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence1 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神1 天前
三、用户与权限管理
数据库·mysql
麦聪聊数据2 天前
数据服务化时代:企业数据能力输出的核心路径
数据库
shushangyun_2 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
DARLING Zero two♡2 天前
【MySQL数据库】数据类型与表约束
数据库·mysql
曹牧2 天前
Oracle EXPLAIN PLAN
数据库·oracle
BD_Marathon2 天前
SQL学习指南——视图
数据库·sql
活宝小娜2 天前
mysql详细安装教程
数据库·mysql·adb