SQLite 是一个 C 语言库,实现了一个小型、快速、独立、高可靠性、全功能的 SQL 数据库引擎。SQLite 是世界上使用最多的数据库引擎。SQLite 的源代码属于公共领域,每个人都可以免费使用,用于任何目的。
SQLite 3.46.0 现已发布,更新内容如下:
- 通过多种方式增强 PRAGMA 优化,使其更易于使用:
- PRAGMA optimize 会自动执行临时分析限制,以防止大型数据库上的运行时间过长。
- 添加了新的 0x10000 位掩码选项来检查所有表的更新。
- 自动重新分析没有 sqlite_stat1 条目的表。
- 增强 date and time functions:
- strftime () SQL 函数现在支持 %G、%g、%U 和 %V。
- 新的修饰符“ceiling”和“floor”,可控制在以整数月份和/或年份移动日期时用于解决模糊日期的算法。
- 如果 SQLite 知道时间已经是 UTC 或本地时间,则“utc”和“localtime”修饰符现在无效。
- 添加对数字文字中数字之间的下划线(“_”)字符的支持 。
- 添加 json_pretty() SQL 函数。
- Query planner 改进:
- “VALUES-as-coroutine”优化使 VALUES 子句中包含数千行的 INSERT 语句的解析和运行时间缩短了约一半,内存使用量也减少了约一半。
- 允许对诸如“SELECT count(DISTINCT col) FROM ...”之类的查询使用索引,即使索引记录不小于表记录。
- 改进了对 SQL 函数的值是常数的情况的识别,因为其所有参数都是常数。
- 增强 WHERE 子句下推优化,使其能够下推包含不相关子查询的 WHERE 子句项。
- 如果 SQL 解析器堆栈溢出,则从堆中为其分配额外的内存,而不是报告“解析器堆栈溢出”错误。
- JSON 更改:
- 允许 JSON5 字符串文字内使用 ASCII 控制字符。
- 修复 -> 和 ->> operators,以便当右侧操作数是一个看起来像整数的字符串时,它仍然被视为字符串,因为 PostgreSQL 就是这么做的。
- 允许将大十六进制文字用作表列的默认值。
更多详情可查看:https://sqlite.org/changes.html