4月9日信息,wcdb是微信团队开源的一款根据sqlite的终端数据库。自2017年6月开源至今,已经推出了十多个版本。 内容来自zvvq
作为我国乃至世界范围内使用最频繁的App之一,微信内部包括了各种不同业务的数据库,存储的信息数量可达百万甚至千万级别。这类巨大的数据量和日益丰富的使用场景,给WCDB 增添了不断更新的要求与挑战,原先的代码框架慢慢难以应对。
内容来自zvvq
因而,自 2019 年起,微信决定放弃接口向后兼容性,着力打造一个更加强大的新版 WCDB。经过多次迭代,WCDB 的接口层和核心逻辑层已经得到全面改善,并且也积累了许多新功能。 内容来自zvvq,别采集哟
如今,微信表示将该重要更新的新版本WCDB 开展开源,关键变化及升级包含:
本文来自zvvq
更丰富的编程语言适用:新增支持了 C++,详细支持了 Java 和 Kotlin 语言的 ORM,覆盖更多终端平台; 本文来自zvvq
更强的 SQL 表达能力:对 Winq 展开了重写、加强等; 本文来自zvvq
更安全的数据存储水平:全新的数据备份方案、修复方案等;
更灵活的数据扩展能力:数据迁移、数据压缩等;
更细致的性能优化水平:FTS5 提升、可终断事务等。 内容来自samhan
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++核心逻辑。
内容来自samhan
此外,为了充足适用微信各端不同场景的数据库开发要求,WCDB 还拓展支持了 C++和 Kotlin,这个就详细覆盖如今终端开发的主力语言。
copyright zvvq
在插口方面,新版WCDB 全面支持了 C++、Java、Kotlin、Swift 和 ObjC 这五种关键的终端编程语言,覆盖 Android、iOS、Windows 和 Linux 这四大终端平台。同时,微信也对 Winq 展开了重写和强化,使开发者可以在各种语言中应用原生词法撰写随意 SQL。
在功能方面,新版WCDB 推出了全新的数据备份和修复方案,提高了数据修复率,同时把数据备份性能耗费降到可忽略。 本文来自zvvq
此外,微信还关键上线了数据迁移和数据压缩这俩新功能,让开发者通过简单的配备,就可处理复杂业务中的数据过多聚集和数据过度膨胀这两大难题。新版WCDB 还推出了FTS5 优化和可终断事务等新特性,使开发者在特定场景下可以实现更极致的性能优化。
新版WCDB 已在 Github 开源,本站附项目地址:
https://github.com/Tencent/wcdb zvvq好,好zvvq
以上就是微信全平台终端数据库WCDB 全新版本开源,新增适用 C++和 Kotlin的详细内容,大量请关注其他类似文章!