我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SQLite 3.43.0 发布,又有啥新功能?

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SQLite 3.43.0 发布,又有啥新功能?

SQLite 开发团队于 2023 年 08 月 24 日发布了 SQLite 3.43.0 版本。本文给大家分析一下该版本的更新。

全文索引

SQLite 3.43.0 增加了 Contentless-Delete FTS5 索引。这是一种 FTS5 全文索引的变种,不存储被索引的内容,同时支持数据的删除操作。

例如:

CREATE VIRTUAL TABLE f1 USING fts5(a, b, c, content='', contentless_delete=1);

Contentless-delete 表与 Contentless 表的区别在于:

  • Contentless-delete 表支持 DELETE 以及 INSERT OR REPLACE INTO 语句;
  • Contentless-delete 表支持 UPDATE 语句,前提是所有用户定义的字段都指定了新的数据;
  • Contentless-delete 表不支持 FTS5 删除命令

例如:

-- 支持以下 UPDATE 语句UPDATE f1 SET a=?, b=?, c=? WHERE rowid=?;-- 不支持以下 UPDATE 语句,因为字段 c 没有指定新的数据UPDATE f1 SET a=?, b=? WHERE rowid=?;

除非存在旧版本的后向兼容需求,推荐使用 Contentless-delete 表。

日期时间函数

新版本增强了日期时间相关的函数。首先是增加了“±YYYY-MM-DD HH:MM:SS.SSS”形式的时间偏移量,例如:

select date('2023-01-01', '+1000-01-01');3023-02-02

其次,新版本增加了 timediff(A, B) 函数,计算从时间 B 到达时间 A 所需的时间。例如:

select timediff('2023-06-01', '2023-01-01');+0000-05-00 00:00:00.000

timediff() 函数返回的格式是字符串,方便阅读。如果想要返回精确的时间差(天数、秒数等),可以使用两个 julianday() 或 unixepoch() 函数相减。

字符串函数

SQLite 3.43.0 增加了一个 octet_length(X) 字符串函数,用于返回字符串 X 占用的字节数。例如:

select octet_length('Hello');5select octet_length('你好');6

octet_length(X) 以字节为单位,而不是字符为单位。因此,不同数据库字符集可能返回不同的长度。

C 语言接口

SQLite 3.43.0 新增了一个 sqlite3_stmt_explain(S,E) API,用于改变预编译语句的 EXPLAIN 设置。

如果参数 E 设置为 0,S 就是一个普通的预编译语句;如果 E 设置为 1,S 就变成一个以 EXPLAIN 开始的 SQL 语句;如果E 设置为 2,S 就变成一个以 EXPLAIN QUERY PLAN 开始的 SQL 语句。

查询优化

查询优化器增强包括:

  • LEFT JOIN 强度削减优化扩展至 RIGHT JOIN 以及 FULL JOIN,并且重命名为 OUTER JOIN 强度消减优化。
  • 改进了 OUTER JOIN 强度消减优化使用的理论证明器,减少了假阴性的情况。

Decimal 扩展

新版本增强了与 decimal 扩展相关的内容:

  • 新增函数 decimal_pow2(N),返回 2.0 的 N 次方,N 为 -2000 到 +2000 之间的整数;
  • 新增函数 decimal_exp(X),以科学计数法形式(e+NN)返回 X 的十进制数字;
  • 对于浮点数 X,decimal(X) 函数将会返回完全扩展的精确数字。

例如:

select decimal_pow2(10);+1.024e+03select decimal_exp(12.3);+1.2300000000000000710542735760100185871124267578125e+01select decimal(12.3);12.300000000000000710542735760100185871124267578125

JSON 性能

某些情况下,对于大型 JSON 字符串的处理性能获得翻倍提升。

来源地址:https://blog.csdn.net/horses/article/details/132535127

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SQLite 3.43.0 发布,又有啥新功能?

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SQLite 3.43.0 发布,又有啥新功能?

SQLite 开发团队于 2023 年 08 月 24 日发布了 SQLite 3.43.0 版本。本文给大家分析一下该版本的更新。 全文索引 SQLite 3.43.0 增加了 Contentless-Delete FTS5 索引。这是一
2023-08-30

Groovy 1.7.3发布值得关注的新功能有哪些

小编给大家分享一下Groovy 1.7.3发布值得关注的新功能有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!基于JVM的新型编程语言Groovy近日发布了1.7.3版本,在Groovy的一系列版本一直都被51CTO所
2023-06-17

编程热搜

目录