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

    文章

    789

    浏览量

    46369
  • C++
    C++
    +关注

    关注

    22

    文章

    2122

    浏览量

    76713
  • 微信
    +关注

    关注

    6

    文章

    512

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Matter 1.5 正式发布

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

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

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

    NVIDIA RAPIDS 25.06版本新增多项功能

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

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

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

    数据库性能优化指南

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

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

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

    企业级MySQL数据库管理指南

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

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

    SQL Server数据库故障: SQL Server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。
    的头像 发表于 06-25 13:54 508次阅读
    <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 462次阅读

    MySQL数据库是什么

    MySQL数据库是一种 开源的关系型数据库管理系统(RDBMS) ,由瑞典MySQL AB公司开发,后被Oracle公司收购。它通过结构化查询语言(SQL)进行数据存储、管理和操作,广
    的头像 发表于 05-23 09:18 916次阅读

    HarmonyOS5云服务技术分享--云数据库使用指南

    接触HarmonyOS开发,还是想优化现有的数据管理逻辑,这篇指南都会手把手带你玩转数据的增删改查,还有那些超实用的高级查询功能! ? ​​
    发表于 05-22 18:29

    Oracle数据库的多功能集成开发环境

    Oracle数据库的多功能集成开发环境 快捷菜单中的可视化对象编辑器 上下文感知的SQL代码补全、智能格式化和重构 逐步执行的自动调试功能功能
    的头像 发表于 01-14 13:52 694次阅读
    Oracle<b class='flag-5'>数据库</b>的多<b class='flag-5'>功能</b>集成开发环境

    MySQL数据库的安装

    MySQL是一个开源免费的关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。 MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好
    的头像 发表于 01-14 11:25 860次阅读
    MySQL<b class='flag-5'>数据库</b>的安装

    数据库是哪种数据库类型?

    数据库是一种部署在虚拟计算环境中的数据库,它融合了云计算的弹性和可扩展性,为用户提供高效、灵活的数据库服务。云数据库主要分为两大类:关系型数据库
    的头像 发表于 01-07 10:22 804次阅读

    数据库数据恢复—Mysql数据库表记录丢失的数据恢复流程

    Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分
    的头像 发表于 12-16 11:05 1000次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—Mysql<b class='flag-5'>数据库</b>表记录丢失的<b class='flag-5'>数据</b>恢复流程