0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

微信WCDB最新开源版本发布,优化数据库接口及核心逻辑,新增多项功能

微云疏影 来源:综合整理 作者:综合整理 2024-04-09 15:59 次阅读

4 月 9 日报道,由微信团队研发并已开源多年的 WCDB,是一款使用 SQLite 为基础的终端数据库。自 2017 年 6 月启动以来,至今已推出超过十个版本。

而后,由于微信集团内部涉及众多业务,数据规模高达百万甚至千万级别的现状,原有 WCDB 模块表现开始显得力不从心。

为了解决以上问题,自 2019 年起,微信团队决定对接口的向后兼容性予以放弃,着力于开发更加完善且强大的新版本 WCDB。历经数次改良与迭代,WCDB 的接口层和核心逻辑层均获得了显著提高,同时也增加了诸多新颖而实用的功能。

如今,微信已经发布此项重大技术升级的新版本 WCDB,以及其更为丰富的开发语言支持,如新增 C++以及对 Java 和 Kotlin 语言的 ORM 提供完整支援,覆盖越发广泛的终端平台;更强大的 SQL 表达能力,通过对 Winq 的重新书写和强化体现出来;全新制定的数据存储机制,包含了为用户提供更全面的备份和修复计划;更加便捷灵活的数据扩展能力,包括数据迁移及数据压缩;更加精细入微的性能优化能力,例如 FTS5 效率提升及可中断事务功能。

另外值得关注的是,早先的 WCDB 1.0 版本底部采用 Objective-C、Swift、Java 三种语言开发,虽然三者版本的 SQLite 和数据修复逻辑相同,但各自不同的代码皆为独立开发完成。

然而,随着 WCDB 版本更替与逐步发展,Objective-C 版本实际发挥更多功能,而 Swift 和 Java 版则处于相对落后的境地,两者间的差距日益加大。

理论上,不同版本的 WCDB 应具备相同实力,但是若将 Objective-C 版本的新逻辑在 Swift 和 Java 上重新实现,工作繁重且易出错,且需二次上线验证,因此并不可行。

幸运的是,Objective-C 版本中 WCDB 的核心逻辑都通过 C++ 得以实现,考虑到很多支持多语言开发的系统或库都依赖 C++ 来构建核心逻辑,其他语言则受限于接口层实现,如业内知名的客户端NoSQL 数据库组件 realmDB 即是类似例子。

遵循此思路来看待 WCDB,只需稍作调整,便能转换 Core Logic 以 C++ 方式实现,利用 Swift 和 Java 的桥接功能来接入 C++ core logic。同时为了满足微信各个终端环境对数据库开发的需求,WCDB 现已添加对 C++和 Kotlin 的支持,从而能够全方位适配当前终端开发的主流语言。

在此基础上,新版本 WCDB 进一步强化了接口层支持,对多个重要的终端开发语言,包括 C++、Java、Kotlin、Swift 和 Objective-C 均予以完整支持,涵盖了 AndroidiOS、Windows 和 Linux 四大终端平台,同时微信也对 Winq 做了重写和增强,使得开发人员可以在各类语言环境下面使用原生语法编写任意 SQL 语句。

新版 WCDB 功能层面的亮点则在于引入全新的数据备份和修复策略,提升了数据修复成功率,同时将数据备份的资源占用降低至几乎忽略不计。

据悉,WCDB 全新的版本还增设数据迁移和数据压缩两项功能,协助使用者通过简略的设置处理复杂业务环境中所出现的数据过度集中和膨胀问题。

最后,新版本 WCDB 还优化改进了 FTS5 以及可中断事务等特性,使得开发者在特定场合下能实现更高效的性能优化。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SQL
    SQL
    +关注

    关注

    1

    文章

    738

    浏览量

    43466
  • C++
    C++
    +关注

    关注

    21

    文章

    2066

    浏览量

    72901
  • 微信
    +关注

    关注

    6

    文章

    508

    浏览量

    26090
收藏 人收藏

    评论

    相关推荐

    阿维塔12发布3.2.0版本更新,新增多项功能优化细节

    特殊车道智能通行功能:城市和乡村的智驾领航辅助(NCA)和车道巡航辅助(LCC)均新增功能,支持通过潮汐车道、公交车道控制杆进入NCA模式,并实现自动驶出的操作。
    的头像 发表于 03-28 14:27 230次阅读

    通过Modbus读写数据库中的数据

    本文是将数据库数据转为Modbus服务端/从站,实现数据库内的数据也可以走Modbus协议通过网口或串口读写的案例,下图是通过智能网关的参数软件(在附件中)配置的参数: 上图中的配置
    发表于 03-14 13:44

    鸿蒙原生应用/元服务开发-新版本端云一体化模板体验反馈

    Ability模板即可。 三、体验 新增: 最新端云一体化新增“云数据库端云一体组件”, 版本对比(旧版本未加入云
    发表于 12-05 14:57

    元件数据库

    软件可以识别设备的元件数据库就好了,我们公司的机器数据都是用物料编码建立的
    发表于 11-16 14:39

    OpenHarmony 4.0 Release版本发布新增4000+ API

    近日,OpenHarmony 4.0 Release版本如期发布,开发套件同步升级到API 10。相比3.2 Release版本,OpenHarmony 4.0 Release版本
    的头像 发表于 11-13 11:31 504次阅读

    如何在HarmonyOS对数据库进行备份,恢复与加密

    backup接口实现数据库备份,通过restore接口实现数据库恢复,通过deletebackup接口删除
    发表于 11-07 08:57

    关于PLC设备对接ORACLE数据库上传查询数据

    ;在断网、服务器维护上报数据有异常时,网关主动将数据缓存,待故障解除后自动重新上报到数据库;网关也支持多服务器冗余、异常未提交数据本地保存等功能
    发表于 10-12 15:34

    数据库SQL的优化

    数据库执行SQL都会先进行语义解析,然后将SQL分成一步一步可执行的计划,然后逐步执行。通过分析执行计划,我们可以清晰的看到数据库执行的操作,这对于数据库SQL的优化具有重大意义。 1
    的头像 发表于 10-09 15:43 775次阅读
    <b class='flag-5'>数据库</b>SQL的<b class='flag-5'>优化</b>

    数据库优化那些事

    我们出去面试经常会被问到数据库这一块,而涉及数据库这一块问的最多的就是数据库优化。那么我们怎么做才能做好优化问题呢?今天我们就来聊聊
    的头像 发表于 10-08 11:49 309次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>优化</b>那些事

    Evatronix R8051XC/R8051XC2 CPU核心的配置功能

    CPU 2 核心的配置功能。 此应用程序说明描述了 Evatronix R8051X 的配置功能。 KOVIC 如何在 NEVIC 内部组织新的 CVIC 数据库 的 CLVI
    发表于 09-04 06:13

    数据库逻辑结构设计(1)#数据库技术

    数据库
    未来加油dz
    发布于 :2023年07月11日 15:36:26

    开源数据库迎来拐点|2023开放原子全球开源峰会数据库分论坛成功召开

    6 月12 日,2023 开放原子全球开源峰会数据库分论坛在北京成功召开。 论坛以 “以开源开放生态推动数据库技术创新” 为主题,围绕开源
    的头像 发表于 06-14 20:55 418次阅读
    <b class='flag-5'>开源</b><b class='flag-5'>数据库</b>迎来拐点|2023开放原子全球<b class='flag-5'>开源</b>峰会<b class='flag-5'>数据库</b>分论坛成功召开

    开源数据库迎来技术创新拐点|2023 开放原子全球开源峰会开源数据库分论坛即将启幕

    作为数字化转型的核心基础软件,数据库正在与开源技术结合,走向自主创新的新征程。开源模式已成为全球数据库创新发展的主导模式,
    的头像 发表于 06-01 16:28 296次阅读
    <b class='flag-5'>开源</b><b class='flag-5'>数据库</b>迎来技术创新拐点|2023 开放原子全球<b class='flag-5'>开源</b>峰会<b class='flag-5'>开源</b><b class='flag-5'>数据库</b>分论坛即将启幕

    开源数据库迎来技术创新拐点|2023开放原子全球开源峰会开源数据库分论坛即将启幕

    作为数字化转型的核心基础软件,数据库正在与开源技术结合,走向自主创新的新征程。开源模式已成为全球数据库创新发展的主导模式,
    的头像 发表于 05-31 08:25 366次阅读
    <b class='flag-5'>开源</b><b class='flag-5'>数据库</b>迎来技术创新拐点|2023开放原子全球<b class='flag-5'>开源</b>峰会<b class='flag-5'>开源</b><b class='flag-5'>数据库</b>分论坛即将启幕

    KiCad EDA 版本说明

    KiCad EDA 的版本也遵循语义化版本规则,版本号通常以 x.y.z 组成。 x 为主版本号,当有重大升级更新时会升级主版本号,比如
    发表于 05-20 16:27