微信基于 SQLite 的开源终端数据库 WCDB 迎来重大升级
WCDB (WeChat Database) 是微信团队基于 SQLite 开发的终端数据库。自 2017 年 6 月开源以来,它在业界得到了广泛认可并被大量应用,迄今已经推出了十多个版本。在这个过程中,WCDB 一直保持良好的向后兼容性,不断完善原有接口的细节并添加新功能。
据介绍,作为国内乃至全球范围内使用数据库最频繁的 App,微信内部涉及上百种不同业务的数据库,存储的消息条数可达百万乃至千万级别。这种庞大的数据量和日益丰富的应用场景,给 WCDB 带来了不断更新的需求和挑战,原有的代码框架逐渐难以应对。
因此,自 2019 年起,微信团队决定放弃接口的向后兼容性,全力打造一个更加强大的新版 WCDB。经过多次迭代,WCDB 的接口层和核心逻辑层已经得到了全面改进,同时也积累了许多新功能。
如今,微信团队宣布将迎来重大升级的新版本 WCDB 进行开源,主要变化及更新包括:
-
更丰富的开发语言支持:新增支持了C++,完整支持了Java和Kotlin语言的ORM,覆盖更多终端平台;
-
更强大的SQL表达能力:对 Winq 进行了重写、强化等;
-
更安全的数据存储能力:全新的数据备份方案、修复方案等;
-
更灵活的数据扩展能力:数据迁移、数据压缩等;
-
更细致的性能优化能力:FTS5 优化、可中断事务等。
微信团队介绍称,WCDB 1.0 版本支持 Objective-C、Swift、Java 三种开发语言,但是三种语言的 WCDB 除了共用同一个版本的 SQLite 和共用同一套备份修复逻辑,其他代码都是独立开发的。
随着 WCDB 不断迭代,WCDB 的很多新能力都是在 ObjC 版本上开发完成和上线验证,Swift 和 Java 版本基本处于停止迭代的状态,他们之间的差异也越来越大。在理想的状态下,不同语言版本的 WCDB 应该拥有同样的能力,但是如果把 ObjC 版本的新逻辑重新在 Swift 和 Java 上实现一遍,不仅工作量大,还容易出错,需要再次上线验证,不太现实。
幸运的是,ObjC 版本的 WCDB 的核心逻辑都是用 C++ 实现的,ObjC 只是用来实现接口层的逻辑。很多支持多种开发语言的库都是使用 C++ 语言来实现核心逻辑,其他语言只是用来实现接口层,比如很热门的客户端 NoSQL 数据库组件 realmDB 就是如此。WCDB 也可以按照这个思路来设计,这样 ObjC 版本的 WCDB 只需小幅调整,将核心逻辑完全改用 C++ 来实现,Swift 和 Java 通过桥接方法来接入 C++ 核心逻辑。
此外,为了充分支持微信各端不同场景的数据库开发需求,WCDB 还扩展支持了 C++ 和 Kotlin,这样就完整覆盖了现在终端开发的主流语言。
在这种代码架构下,不同语言的 WCDB 可以按需集成到同个项目中,有利于节省代码和减少包大小,还可以避免不同语言接口逻辑的冲突,甚至使用不同语言的接口来使用同一个DB都不用担心有任何逻辑冲突。
在接口层面,新版 WCDB 全面支持了 C++、Java、Kotlin、Swift 和 ObjC 这五种主要的终端开发语言,覆盖了 Android、iOS、Windows 和 Linux 这四大终端平台。同时,微信还对 Winq 进行了重写和强化,使开发者能够在各种语言中使用原生语法编写任意 SQL。
在功能层面,新版 WCDB 推出了全新的数据备份和修复方案,提升了数据修复率,同时将数据备份的性能消耗降至可忽略不计。
此外,微信还重点推出了数据迁移和数据压缩这两个新功能,让开发者通过简单的配置,就能处理复杂业务中的数据过度聚集和数据过度膨胀这两大难题。新版 WCDB 还推出了 FTS5 优化和可中断事务等新特性,使开发者在特定场景下可以实现更极致的性能优化。
新版 WCDB 已在 GitHub 开源:https://github.com/Tencent/wcdb。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
热点!AI 大模型直通车已正式开启,快抓住就业机遇跳板!
关注行业前瞻性,开启AI大模型新时代 目前互联网就业形势展现出一种复杂而多元的局面。伴随着新型技术的不断更新迭代与就业人群基数的不断升高,对AI专业人才的技术要求可谓是达到了一定高度。对AI技术人才求贤若渴,岗位空缺难以填补! 学习AI大模型已成AI大模型新时代就业抓手,职场转行加薪的敲门砖!掌握AI大模型的IT人才将更有可能获得更好的职业机会和发展空间! AI大模型已经市场化并逐渐成熟,开源中国&Llama中文社区更是关注到了很多有关大模型相关学习的咨询和IT人才的供不应求,AI 大模型专家已成扩招急需! 瞄 准市场!精准培养! 因此,开源中国 & Llama中文社区推出了——《跟我学大模型课堂》,对于想要转行AI加薪或者 想要 提高最新最前沿技术的IT行业数字人才来说,这个课程绝对不能错过! 还在等什么,赶快加入我们! 扫码立即报名↓ AI 大模型,就业机遇跳板—市场需求指南针 清华大学大模型博士专家团队 将手把手教学,化繁为简,提炼 大模型技术/AI实践精华核心重点并 倾囊相授大模型训练的宝贵经验 。 在当下市场环境中,大家可以自行判断学习需求,机会不容...
- 下一篇
微软在伦敦开设 AI 中心
微软宣布将在伦敦建立一个新的 AI 研究中心。此前,该公司宣布在公司内创建一个名为 Microsoft AI 的新部门,专注于构建 Copilot 等商业人工智能产品。 新的 AI 中心将专注于大型语言模型和运行它们所需的基础设施的创新,为基础模型创建工具,以及在公司内部以及与 OpenAI 等外部合作伙伴进行协作。 Microsoft AI London 将由 Jordan Hoffman 领导,他曾是 DeepMind 和 Inflection 的研究科学家。通过在伦敦建立基地,该公司希望吸引更多英国人才到微软从事 AI 工作。该公司计划在接下来的几周内开始发布职位列表。 微软 AI 执行副总裁兼首席执行官 Mustafa Suleyman 表示,这对微软 AI 和英国来说都是个好消息。 “作为一名在伦敦出生和长大的英国公民,我很自豪能够在这里共同创立并建立一家尖端的 AI 企业。我深深了解英国非凡的人才库和 AI 生态系统,我很高兴能够代表 Microsoft AI 对英国做出这一承诺。通过与英国政府、商界和学术界思想领袖的密切合作,我知道英国致力于负责任地推进 AI 发展,并以...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7设置SWAP分区,小内存服务器的救世主
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群