BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

SQLite 3.9支持JSON、表达式索引及更多特性

| 作者 Sergio De Simone 关注 14 他的粉丝 ,译者 百占辉 关注 0 他的粉丝 发布于 2015年10月29日. 估计阅读时间: 3 分钟 | 都知道硅谷人工智能做的好,你知道 硅谷的运维技术 也值得参考吗?QCon上海带你探索其中的奥义

最近发布的SQLite 3.9提供了一些新特性和增强功能,包括支持JSON编解码、全文检索版本5、表达式索引、同名虚表等等。

根据采用最新语义版本标准,SQLite 3.9是一个通过引入新特性而打破兼容性同时又向下兼容旧版本的版本。SQLite 3.9引入的新特性包括:

  • 支持JSON,通过json1扩展,实现了一套方法来验证JSON字符串、构建JSON数组和对象、操作JSON字符串(通过更新、插入和替换值)等。另外,有两个表值方法可以通过将每个JSON元素映射成行来将JSON字符串转换成虚表。
  • 索引表达式,补充了引用表列的传统索引,允许使用涉及多个列的表达式创建索引。这个特性将使得查询更有效率,例如,需要列出给定账户金额总数超过给定数目的所有操作:
  • CREATE INDEX account_change_magnitude ON account_change(acct_no, abs(amt)); SELECT * FROM account_change WHERE acct_no=$xyz AND abs(amt)>=10000;
  • 同名虚表,它是可以用于通过简单地参照其模型名称的虚表,即,不需要运行CREATE VIRTUAL TABLE。 它的一个例子是dbstat虚表,它提供了一个数据库文件中的B树和溢出页的低级别信息。
  • 全文检索版本5(FTS5),是一个虚表组件,它允许创建一个可以之后全文检索的虚表。以下是如何通过FTS5填充一个虚表:
  • CREATE VIRTUAL TABLE email USING fts5(sender, title, body);

    一旦你拥有一个FTS5虚表,你可以通过三种方式来在其中查询一个词:

    SELECT * FROM email WHERE email MATCH 'fts5'; SELECT * FROM email WHERE email = 'fts5'; SELECT * FROM email('fts5');

    这个功能依然在实验状态。

值得一提的其它变化是当使用CREATE VIEW时增加了列名的可选列表,当创建一个视图,并让他们在查询时检查的时候引用未定义表的可能性。

更多信息,阅读SQLite 3.9.03.9.1 release notes

查看英文原文:SQLite 3.9 Supports JSON, Indexes on Expressions and More


感谢张龙对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群InfoQ好读者)。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT