我们正处于一个信息大暴发的时代,每天都能产生数以百万计的新闻资讯!
虽然有大数据推荐,但面对海量数据,通过我们的调研发现,在一个小时的时间里,您通常无法真正有效地获取您感兴趣的资讯!
头条新闻资讯订阅,旨在帮助您收集感兴趣的资讯内容,并且在第一时间通知到您。可以有效节约您获取资讯的时间,避免错过一些关键信息。
4月9日消息,WCDB是微信团队开源的一款基于SQLite的终端数据库。自2017年6月开源以来,已经推出了十多个版本。
然而,作为国内乃至全球范围内使用数据库最频繁的App,微信内部涉及上百种不同业务的数据库,存储的消息条数可达百万乃至千万级别。这种庞大的数据量和日益丰富的应用场景,给WCDB带来了不断更新的需求和挑战,原有的代码框架逐渐难以应对。
因此,自2019年起,微信决定放弃接口的向后兼容性,全力打造一个更加强大的新版WCDB。经过多次迭代,WCDB的接口层和核心逻辑层已经得到了全面改进,同时也积累了许多新功能。
如今,微信宣布将该重大升级的新版本WCDB进行开源,主要变化及更新包括:
更丰富的开发语言支持:新增支持了C++,完整支持了Java和Kotlin语言的ORM,覆盖更多终端平台;
更强大的SQL表达能力:对Winq进行了重写、强化等;
更安全的数据存储能力:全新的数据备份方案、修复方案等;
更灵活的数据扩展能力:数据迁移、数据压缩等;
更细致的性能优化能力:FTS5优化、可中断事务等。
据介绍,WCDB1.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全面支持了C++、Java、Kotlin、Swift和ObjC这五种主要的终端开发语言,覆盖了Android、iOS、Windows和Linux这四大终端平台。同时,微信还对Winq进行了重写和强化,使开发者能够在各种语言中使用原生语法编写任意SQL。
在功能层面,新版WCDB推出了全新的数据备份和修复方案,提升了数据修复率,同时将数据备份的性能消耗降至可忽略不计。
此外,微信还重点推出了数据迁移和数据压缩这两个新功能,让开发者通过简单的配置,就能处理复杂业务中的数据过度聚集和数据过度膨胀这两大难题。新版WCDB还推出了FTS5优化和可中断事务等新特性,使开发者在特定场景下可以实现更极致的性能优化。
新版WCDB已在Github开源
以上内容为资讯信息快照,由td.fyun.cc爬虫进行采集并收录,本站未对信息做任何修改,信息内容不代表本站立场。
快照生成时间:2024-04-10 09:45:07
本站信息快照查询为非营利公共服务,如有侵权请联系我们进行删除。
信息原文地址: