4 月 9 日報道,由微信團隊研發(fā)并已開源多年的 WCDB,是一款使用 SQLite 為基礎的終端數(shù)據(jù)庫。自 2017 年 6 月啟動以來,至今已推出超過十個版本。
而后,由于微信集團內(nèi)部涉及眾多業(yè)務,數(shù)據(jù)規(guī)模高達百萬甚至千萬級別的現(xiàn)狀,原有 WCDB 模塊表現(xiàn)開始顯得力不從心。
為了解決以上問題,自 2019 年起,微信團隊決定對接口的向后兼容性予以放棄,著力于開發(fā)更加完善且強大的新版本 WCDB。歷經(jīng)數(shù)次改良與迭代,WCDB 的接口層和核心邏輯層均獲得了顯著提高,同時也增加了諸多新穎而實用的功能。
如今,微信已經(jīng)發(fā)布此項重大技術升級的新版本 WCDB,以及其更為豐富的開發(fā)語言支持,如新增 C++以及對 Java 和 Kotlin 語言的 ORM 提供完整支援,覆蓋越發(fā)廣泛的終端平臺;更強大的 SQL 表達能力,通過對 Winq 的重新書寫和強化體現(xiàn)出來;全新制定的數(shù)據(jù)存儲機制,包含了為用戶提供更全面的備份和修復計劃;更加便捷靈活的數(shù)據(jù)擴展能力,包括數(shù)據(jù)遷移及數(shù)據(jù)壓縮;更加精細入微的性能優(yōu)化能力,例如 FTS5 效率提升及可中斷事務功能。
另外值得關注的是,早先的 WCDB 1.0 版本底部采用 Objective-C、Swift、Java 三種語言開發(fā),雖然三者版本的 SQLite 和數(shù)據(jù)修復邏輯相同,但各自不同的代碼皆為獨立開發(fā)完成。
然而,隨著 WCDB 版本更替與逐步發(fā)展,Objective-C 版本實際發(fā)揮更多功能,而 Swift 和 Java 版則處于相對落后的境地,兩者間的差距日益加大。
理論上,不同版本的 WCDB 應具備相同實力,但是若將 Objective-C 版本的新邏輯在 Swift 和 Java 上重新實現(xiàn),工作繁重且易出錯,且需二次上線驗證,因此并不可行。
幸運的是,Objective-C 版本中 WCDB 的核心邏輯都通過 C++ 得以實現(xiàn),考慮到很多支持多語言開發(fā)的系統(tǒng)或庫都依賴 C++ 來構(gòu)建核心邏輯,其他語言則受限于接口層實現(xiàn),如業(yè)內(nèi)知名的客戶端NoSQL 數(shù)據(jù)庫組件 realmDB 即是類似例子。
遵循此思路來看待 WCDB,只需稍作調(diào)整,便能轉(zhuǎn)換 Core Logic 以 C++ 方式實現(xiàn),利用 Swift 和 Java 的橋接功能來接入 C++ core logic。同時為了滿足微信各個終端環(huán)境對數(shù)據(jù)庫開發(fā)的需求,WCDB 現(xiàn)已添加對 C++和 Kotlin 的支持,從而能夠全方位適配當前終端開發(fā)的主流語言。
在此基礎上,新版本 WCDB 進一步強化了接口層支持,對多個重要的終端開發(fā)語言,包括 C++、Java、Kotlin、Swift 和 Objective-C 均予以完整支持,涵蓋了 Android、iOS、Windows 和 Linux 四大終端平臺,同時微信也對 Winq 做了重寫和增強,使得開發(fā)人員可以在各類語言環(huán)境下面使用原生語法編寫任意 SQL 語句。
新版 WCDB 功能層面的亮點則在于引入全新的數(shù)據(jù)備份和修復策略,提升了數(shù)據(jù)修復成功率,同時將數(shù)據(jù)備份的資源占用降低至幾乎忽略不計。
據(jù)悉,WCDB 全新的版本還增設數(shù)據(jù)遷移和數(shù)據(jù)壓縮兩項功能,協(xié)助使用者通過簡略的設置處理復雜業(yè)務環(huán)境中所出現(xiàn)的數(shù)據(jù)過度集中和膨脹問題。
最后,新版本 WCDB 還優(yōu)化改進了 FTS5 以及可中斷事務等特性,使得開發(fā)者在特定場合下能實現(xiàn)更高效的性能優(yōu)化。
-
SQL
+關注
關注
1文章
779瀏覽量
44705 -
C++
+關注
關注
22文章
2116瀏覽量
74567 -
微信
+關注
關注
6文章
512瀏覽量
27084
發(fā)布評論請先 登錄
相關推薦
Oracle數(shù)據(jù)庫的多功能集成開發(fā)環(huán)境

MySQL數(shù)據(jù)庫的安裝

云數(shù)據(jù)庫是哪種數(shù)據(jù)庫類型?
Linux微信4.0.0版發(fā)布,功能再升級
數(shù)據(jù)庫數(shù)據(jù)恢復—通過拼接數(shù)據(jù)庫碎片恢復SQLserver數(shù)據(jù)庫

數(shù)據(jù)庫數(shù)據(jù)恢復—SQL Server數(shù)據(jù)庫出現(xiàn)823錯誤的數(shù)據(jù)恢復案例

軟件系統(tǒng)數(shù)據(jù)庫的分庫分表設計

鴻蒙開發(fā)接口數(shù)據(jù)管理:【@ohos.data.rdb (關系型數(shù)據(jù)庫)】
阿里云與中興通訊達成開源數(shù)據(jù)庫合作
阿里云與中興通訊達成開源數(shù)據(jù)庫合作,助推國產(chǎn)數(shù)據(jù)庫發(fā)展
HarmonyOS開發(fā)案例:【搭建關系型數(shù)據(jù)庫】(4)

最新開源代碼證實!“鴻蒙原生版”微信正在積極開發(fā)中
數(shù)據(jù)庫數(shù)據(jù)恢復—raid5陣列上層Sql Server數(shù)據(jù)庫數(shù)據(jù)恢復案例

評論