4 月 9 日消息,WCDB 是微信團隊開源的一款基于 SQLite 的終端數據庫。自 2017 年 6 月開源以來,已經推出了十多個版本。
然而,作為國內乃至全球范圍內使用數據庫最頻繁的 App,微信內部涉及上百種不同業務的數據庫,存儲的消息條數可達百萬乃至千萬級別。這種龐大的數據量和日益豐富的應用場景,給 WCDB 帶來了不斷更新的需求和挑戰,原有的代碼框架逐漸難以應對。
因此,自 2019 年起,微信決定放棄接口的向后兼容性,全力打造一個更加強大的新版 WCDB。經過多次迭代,WCDB 的接口層和核心邏輯層已經得到了全面改進,同時也積累了許多新功能。
如今,微信宣布將該重大升級的新版本 WCDB 進行開源,主要變化及更新包括:
更豐富的開發語言支持:新增支持了 C++,完整支持了 Java 和 Kotlin 語言的 ORM,覆蓋更多終端平臺;
更強大的 SQL 表達能力:對 Winq 進行了重寫、強化等;
更安全的數據存儲能力:全新的數據備份方案、修復方案等;
更靈活的數據擴展能力:數據遷移、數據壓縮等;
更細致的性能優化能力:FTS5 優化、可中斷事務等。
據介紹,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++ 核心邏輯。
此外,為了充分支持微信各端不同場景的數據庫開發需求,WCDB 還擴展支持了 C++ 和 Kotlin,這樣就完整覆蓋了現在終端開發的主流語言。
在接口層面,新版 WCDB 全面支持了 C++、Java、Kotlin、Swift 和 ObjC 這五種主要的終端開發語言,覆蓋了 Android、iOS、Windows 和 Linux 這四大終端平臺。同時,微信還對 Winq 進行了重寫和強化,使開發者能夠在各種語言中使用原生語法編寫任意 SQL。
在功能層面,新版 WCDB 推出了全新的數據備份和修復方案,提升了數據修復率,同時將數據備份的性能消耗降至可忽略不計。
此外,微信還重點推出了數據遷移和數據壓縮這兩個新功能,讓開發者通過簡單的配置,就能處理復雜業務中的數據過度聚集和數據過度膨脹這兩大難題。新版 WCDB 還推出了 FTS5 優化和可中斷事務等新特性,使開發者在特定場景下可以實現更極致的性能優化。
新版 WCDB 已在 Github 開源,附項目地址:
https://github.com/Tencent/wcdb
本文鏈接:http://www.www897cc.com/showinfo-119-82193-0.html微信全平臺終端數據庫 WCDB 全新版本開源,新增支持 C++ 和 Kotlin
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com