SQLite 3.45.0 发布!

这篇具有很好参考价值的文章主要介绍了SQLite 3.45.0 发布!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SQLite 开发团队于 2024 年 01 月 18 日发布了 SQLite 3.45.0 版本,带来了一些 JSON 和优化器增强,让我们一睹为快!

JSON 函数

SQLite 3.45.0 版本开始,所有的 JSON 函数将会使用全新的内部格式存储 JSON 数据,也就是二进制的 JSONB。这种新格式可以避免查询和更新时不必要的 JSON 数据解析,而且占用的磁盘空间更小。

新版本增加了大量处理 JSONB 参数的函数,它们和原有的 JSON 函数一一对应。例如:

select json_extract('{"Name":"SQLite", "Version":"3.45.0"}', '$.Name');
SQLite

select jsonb_extract('{"Name":"SQLite", "Version":"3.45.0"}', '$.Name');
SQLite

json_valid(x, y) 函数增加了一个可选的参数 y,用于定义 JSON 格式校验的规则。该参数的取值范围如下:

  • 0x01,输入文本严格遵循 RFC-8259 JSON 规范;
  • 0x02,输入文本遵循 JSON5 扩展规范;
  • 0x04,输入文本为遵循 JSONB 外部格式的 BLOB;
  • 0x08,输入文本为严格遵循 JSONB 内部格式的 BLOB。

参数 y 的默认值为 1,也可以是以上状态掩码的组合:

  • 1,输入文本为 RFC-8259 JSON 文本;
  • 2,输入文本为 JSON5 文本;
  • 4,输入文本大概率为 JSONB;
  • 5,输入文本为 RFC-8259 JSON 文本或者 JSONB;
  • 6,输入文本为 JSON5 文本或者 JSONB;
  • 8,输入文本严格遵循 JSONB 规范;
  • 9,输入文本为 RFC-8259 JSON 文本或者严格遵循 JSONB 规范;
  • 10,输入文本为 JSON5 文本或者严格遵循 JSONB 规范。

查询优化

如果存在一个更好的等式约束(equality constraint),不允许使用传递性约束优化(transitive constraint optimization)引导查询优化器错误地使用范围约束(range constraint)。因为等式约束通常比范围约束更精确,能够更好地优化查询性能。

CREATE TABLE x(i INTEGER, j INTEGER, k INTEGER);
CREATE INDEX idx_x_ij ON x(i, j);

EXPLAIN QUERY PLAN SELECT * FROM x a JOIN x b ON b.i = a.i AND b.j = a.k WHERE a.k > 0;

-- 早期版本
QUERY PLAN
|--SCAN a
`--SEARCH b USING INDEX idx_x_ij (i=? AND j>?)

-- SQLite 3.45.0
QUERY PLAN
|--SCAN a
`--SEARCH b USING INDEX idx_x_ij (i=? AND j=?)

查询优化器可以更好地忽略那些被 ANALYZE 工具识别为低质量的索引,以提高查询性能和效率。

其他改进

新版本为应用程序 SQL 函数增加了 SQLITE_RESULT_SUBTYPE 属性,所有调用 sqlite3_result_subtype() 的应用程序 SQL 函数必须注册该属性。

新版本可以为 FTS5 虚拟表指定 Tokendata 选项,可以控制 fts5 处理分词器返回的内容。

默认启用 SQLITE_DIRECT_OVERFLOW_READ 优化选项,可以提高 BLOB 和长字符串的读取性能。如果需要禁用该选项,可以在编译时指定 -DSQLITE_DIRECT_OVERFLOW_READ=0。

参数 SQLITE_MAX_PAGE_COUNT 的默认值从 1073741824 改为 4294967294,对于默认的 4 KB 数据页,单个数据库文件最大可以到达 17.5 TB。

对于命令行客户端,自动检测 .dump 脚本的执行并设置合适的参数,例如 .dbconfig defensive off 以及 .dbconfig dqs_dll on。同时命令行还改进了 Windows 平台对于 UTF-8 内容的显示。文章来源地址https://www.toymoban.com/news/detail-815321.html

到了这里,关于SQLite 3.45.0 发布!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SQLite数据库

    目录 SQLite数据库 在Android中的使用 SQLiteOpenHelper中的方法 增删改查 添加数据 insert() 查询数据 query(),rawQuery() 查询和添加案例 数据库帮助类: MainActivity: Activity_main.xml:         SQLite是一个 轻量级的嵌入数据库 ,实现了自给自足的、 无服务器 的、 零配置 的、事务性的

    2023年04月15日
    浏览(46)
  • SQLite学习(十二)SQLite《社区流动人员系统》项目实战,数据库创建

    在前面的博客中,我们学习了 SQLite 的理论知识,从本篇博客开始,同学们将通过一个实战项目**《社区流动人员系统》**,对之前所学的知识做一次实战应用。 随着社会经济的迅速崛起,城市一体化的步伐加快,大量农民选择转移到城市中就业。形成了一股数量巨大的流动性

    2024年02月08日
    浏览(96)
  • sqlite数据库基本使用

    sqlite数据库是sql数据库引擎的一种,它不需要任何配置,不需要服务器,是一个轻量级的嵌入式数据库。安装sqlite见文档:SQLite3的安装与使用_sqlite3安装_冒险的梦想家的博客-CSDN博客 下面直接对sqlite3数据库基本命令进行说明: 1.获取sqlite版本的命令 sqlite3 --version 2.数据库创

    2024年02月10日
    浏览(45)
  • 数据库--Sqlite3

     1、思维导图  2sqlite3在linux中是实现数据的增删,改 #includemyhead.h int main(int argc, const char *argv[]) {         //1、定义一个数据库句柄指针         sqlite3* ppDb =NULL;         //2、创建或打开数据库         if(sqlite3_open(\\\"./mydb.db\\\",ppDb)!=SQLITE_OK)         {                 printf(

    2024年04月27日
    浏览(45)
  • uniapp使用sqlite 数据库

    傻瓜式使用方式,按步骤,即可使用。 1.开启sqlite 在项目中manifest.json该文件中配置 2.封装数据库的调用方法 3.创建数据库方式 4.操作数据库正删改查

    2024年02月11日
    浏览(50)
  • SQLITE 数据库增删改查

    1、添加依赖 在.pro文件添加sql模块 2、SqliteHelper头文件 3、SqliteHelper源文件 4、main函数

    2024年02月07日
    浏览(47)
  • SQLite数据库实现数据增删改查

    当前文章介绍的设计的主要功能是利用 SQLite 数据库实现宠物投喂器上传数据的存储,并且支持数据的增删改查操作。其中,宠物投喂器上传的数据包括投喂间隔时间、水温、剩余重量等参数。 实现功能: 创建 SQLite 数据库表,用于存储宠物投喂器上传的数据。 实现对数据库

    2024年02月12日
    浏览(54)
  • django如何连接sqlite数据库?

    目录 一、SQLite数据库简介 二、Django连接SQLite数据库 1、配置数据库 2、创建数据库表 三、使用Django ORM操作SQLite数据库 1、定义模型 2、创建对象 3、查询对象 总结 本文将深入探讨如何在Django框架中连接和使用SQLite数据库。我们将介绍SQLite数据库的特点,Django的数据库配置,以

    2024年02月06日
    浏览(54)
  • C#如何使用SQLite数据库?

      SQLite是一个轻量级的嵌入式数据库,它的库文件非常小巧,不需要独立的服务器进程或配置。这使得它非常适合在资源受限的环境中使用,如移动设备、嵌入式系统等。与其他数据库管理系统相比,SQLite不需要进行繁琐的配置和管理。它只需要一个文件来存储整个数据库

    2024年02月12日
    浏览(50)
  • sqlite3数据库的实现

    sqlite3代码实现数据库的插入、删除、修改、退出功能

    2024年02月12日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包