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

    文章

    809

    浏览量

    47023
  • C++
    C++
    +关注

    关注

    22

    文章

    2131

    浏览量

    77493
  • 微信
    +关注

    关注

    6

    文章

    512

    浏览量

    28060
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【米尔TI AM62L开发板试用】+数据库操作及功能测试

    没想到的是在TI AM62L开发板上也提供了数据库功能,其选取版本是SQLite3,它是一款轻型的数据库,所遵守的是关系型数据库管理系统,
    发表于 05-11 11:31

    ASPICE 3.1 与 4.0 版本核心差异:从软件专属到全系统覆盖(四)

    迭代升级 除了新增硬件过程组,4.0 版本还完成了多项关键优化: 1.新增 MLE 机器学习工程过程组,包含 5 个
    发表于 04-08 09:48

    西门子PCB DFM分析工具Valor NPI 2510版本新增功能

    Valor NPI 2510 版本新增多项检查功能、提升制造风险识别,并推出令人瞩目的 3D 可视化增强特性,这标志着产品的重大升级。Valor NPI 的 3D 视图经过重新设计,让可制造性设计 (DFM) 结果的查看更直观、
    的头像 发表于 01-04 16:10 846次阅读
    西门子PCB DFM分析工具Valor NPI 2510<b class='flag-5'>版本</b>的<b class='flag-5'>新增</b><b class='flag-5'>功能</b>

    OpenTenBase核心贡献者分享开源数据库的破局之路

    “在开源数据库已成一片‘红海’的当下,单纯比拼‘快’或‘省’,已很难在开发者心中建立独特的护城河。”OpenTenBase核心贡献者、腾讯云数据库专家工程师李晋钢这样阐述他对当前
    的头像 发表于 12-29 14:00 615次阅读

    Matter 1.5 正式发布

    景,包括对摄像头、闭合设备、土壤传感器的支持,同时还新增多项能源管理功能。此次更新延续了 Matter 的核心使命,即简化智能家居开发流程、增强设备互操作性,为消费者与开发者打造更丰富、更可持续的互操作体验。 今年早些时候联盟
    的头像 发表于 12-01 14:45 942次阅读
    Matter 1.5 正式<b class='flag-5'>发布</b>

    华纳云香港服务器数据库索引优化策略

    在香港服务器环境中,数据库索引优化是提升整体性能的关键因素。随着企业数据量的不断增长,高效的索引管理能显著提高查询速度并降低服务器负载。本文将深入探讨如何针对香港服务器(特别是其独特的地理和法律要求
    的头像 发表于 10-16 17:06 691次阅读

    开鸿Bot系列大版本更新:体验稳定升级,乐享高效协同!

    V5.0.1.22版本开鸿Bot系列今日,开鸿Bot系列迎来第二次大版本更新——V5.0.1.22。此次版本更新致力于进一步提升系统稳定性与用户体验,新增多项实用
    的头像 发表于 09-26 17:06 1620次阅读
    开鸿Bot系列大<b class='flag-5'>版本</b>更新:体验稳定升级,乐享高效协同!

    NVIDIA RAPIDS 25.06版本新增多项功能

    RAPIDS 是一套面向 Python 数据科学的 NVIDIA CUDA-X ,最新发布的 25.06 版本引入了多项亮眼新
    的头像 发表于 09-09 09:54 1368次阅读

    数据库慢查询分析与SQL优化实战技巧

    今天,我将分享我在处理数千次数据库性能问题中积累的实战经验,帮助你系统掌握慢查询分析与SQL优化核心技巧。无论你是刚入门的运维新手,还是有一定经验的工程师,这篇文章都将为你提供实用的解决方案。
    的头像 发表于 09-08 09:34 1350次阅读

    数据库性能优化指南

    作为一名在大厂摸爬滚打多年的运维老兵,我见过太多因为数据库性能问题导致的生产事故。今天分享一套完整的数据库优化方法论,从SQL层面到硬件配置,帮你彻底解决性能瓶颈!
    的头像 发表于 08-18 11:21 972次阅读

    数据库数据恢复—服务器异常断电导致Oracle数据库故障的数据恢复案例

    Oracle数据库故障: 某公司一台服务器上部署Oracle数据库。服务器意外断电导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持一致性”。该Oracle数据库
    的头像 发表于 07-24 11:12 935次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—服务器异常断电导致Oracle<b class='flag-5'>数据库</b>故障的<b class='flag-5'>数据</b>恢复案例

    匠芯创发布新版GUI开发工具 新增多国语言设置等功能

    。此次版本更新,为用户带来了诸多实用的新功能,进一步提升了设计体验和开发效率。 在V1.3.0版本中,AiUIBuilder新增了 多国语言切换功能
    发表于 07-16 13:54

    企业级MySQL数据库管理指南

    在当今数字化时代,MySQL作为全球最受欢迎的开源关系型数据库,承载着企业核心业务数据的存储与处理。作为数据库管理员(DBA),掌握MySQ
    的头像 发表于 07-09 09:50 984次阅读

    数据库数据恢复—SQL Server数据库被加密如何恢复数据

    SQL Server数据库故障: SQL Server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。
    的头像 发表于 06-25 13:54 929次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—SQL Server<b class='flag-5'>数据库</b>被加密如何恢复<b class='flag-5'>数据</b>?

    MySQL数据库采集网关是什么?有什么功能

    场景中发挥关键作用,以下从核心功能和应用场景展开分析: 一、核心功能 协议转换与数据采集 支持多种工业协议(如Modbus、OPC UA、BACnet、SNMP等)和通用通信接口(如R
    的头像 发表于 05-26 15:20 899次阅读