0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

微信WCDB最新開源版本發(fā)布,優(yōu)化數(shù)據(jù)庫接口及核心邏輯,新增多項(xiàng)功能

微云疏影 ? 來源:綜合整理 ? 作者:綜合整理 ? 2024-04-09 15:59 ? 次閱讀

4 月 9 日?qǐng)?bào)道,由微信團(tuán)隊(duì)研發(fā)并已開源多年的 WCDB,是一款使用 SQLite 為基礎(chǔ)的終端數(shù)據(jù)庫。自 2017 年 6 月啟動(dòng)以來,至今已推出超過十個(gè)版本。

而后,由于微信集團(tuán)內(nèi)部涉及眾多業(yè)務(wù),數(shù)據(jù)規(guī)模高達(dá)百萬甚至千萬級(jí)別的現(xiàn)狀,原有 WCDB 模塊表現(xiàn)開始顯得力不從心。

為了解決以上問題,自 2019 年起,微信團(tuán)隊(duì)決定對(duì)接口的向后兼容性予以放棄,著力于開發(fā)更加完善且強(qiáng)大的新版本 WCDB。歷經(jīng)數(shù)次改良與迭代,WCDB 的接口層和核心邏輯層均獲得了顯著提高,同時(shí)也增加了諸多新穎而實(shí)用的功能。

如今,微信已經(jīng)發(fā)布此項(xiàng)重大技術(shù)升級(jí)的新版本 WCDB,以及其更為豐富的開發(fā)語言支持,如新增 C++以及對(duì) Java 和 Kotlin 語言的 ORM 提供完整支援,覆蓋越發(fā)廣泛的終端平臺(tái);更強(qiáng)大的 SQL 表達(dá)能力,通過對(duì) Winq 的重新書寫和強(qiáng)化體現(xiàn)出來;全新制定的數(shù)據(jù)存儲(chǔ)機(jī)制,包含了為用戶提供更全面的備份和修復(fù)計(jì)劃;更加便捷靈活的數(shù)據(jù)擴(kuò)展能力,包括數(shù)據(jù)遷移及數(shù)據(jù)壓縮;更加精細(xì)入微的性能優(yōu)化能力,例如 FTS5 效率提升及可中斷事務(wù)功能。

另外值得關(guān)注的是,早先的 WCDB 1.0 版本底部采用 Objective-C、Swift、Java 三種語言開發(fā),雖然三者版本的 SQLite 和數(shù)據(jù)修復(fù)邏輯相同,但各自不同的代碼皆為獨(dú)立開發(fā)完成。

然而,隨著 WCDB 版本更替與逐步發(fā)展,Objective-C 版本實(shí)際發(fā)揮更多功能,而 Swift 和 Java 版則處于相對(duì)落后的境地,兩者間的差距日益加大。

理論上,不同版本的 WCDB 應(yīng)具備相同實(shí)力,但是若將 Objective-C 版本的新邏輯在 Swift 和 Java 上重新實(shí)現(xiàn),工作繁重且易出錯(cuò),且需二次上線驗(yàn)證,因此并不可行。

幸運(yùn)的是,Objective-C 版本中 WCDB 的核心邏輯都通過 C++ 得以實(shí)現(xiàn),考慮到很多支持多語言開發(fā)的系統(tǒng)或庫都依賴 C++ 來構(gòu)建核心邏輯,其他語言則受限于接口層實(shí)現(xiàn),如業(yè)內(nèi)知名的客戶端NoSQL 數(shù)據(jù)庫組件 realmDB 即是類似例子。

遵循此思路來看待 WCDB,只需稍作調(diào)整,便能轉(zhuǎn)換 Core Logic 以 C++ 方式實(shí)現(xiàn),利用 Swift 和 Java 的橋接功能來接入 C++ core logic。同時(shí)為了滿足微信各個(gè)終端環(huán)境對(duì)數(shù)據(jù)庫開發(fā)的需求,WCDB 現(xiàn)已添加對(duì) C++和 Kotlin 的支持,從而能夠全方位適配當(dāng)前終端開發(fā)的主流語言。

在此基礎(chǔ)上,新版本 WCDB 進(jìn)一步強(qiáng)化了接口層支持,對(duì)多個(gè)重要的終端開發(fā)語言,包括 C++、Java、Kotlin、Swift 和 Objective-C 均予以完整支持,涵蓋了 AndroidiOS、Windows 和 Linux 四大終端平臺(tái),同時(shí)微信也對(duì) Winq 做了重寫和增強(qiáng),使得開發(fā)人員可以在各類語言環(huán)境下面使用原生語法編寫任意 SQL 語句。

新版 WCDB 功能層面的亮點(diǎn)則在于引入全新的數(shù)據(jù)備份和修復(fù)策略,提升了數(shù)據(jù)修復(fù)成功率,同時(shí)將數(shù)據(jù)備份的資源占用降低至幾乎忽略不計(jì)。

據(jù)悉,WCDB 全新的版本還增設(shè)數(shù)據(jù)遷移和數(shù)據(jù)壓縮兩項(xiàng)功能,協(xié)助使用者通過簡略的設(shè)置處理復(fù)雜業(yè)務(wù)環(huán)境中所出現(xiàn)的數(shù)據(jù)過度集中和膨脹問題。

最后,新版本 WCDB 還優(yōu)化改進(jìn)了 FTS5 以及可中斷事務(wù)等特性,使得開發(fā)者在特定場合下能實(shí)現(xiàn)更高效的性能優(yōu)化。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    751

    瀏覽量

    43984
  • C++
    C++
    +關(guān)注

    關(guān)注

    21

    文章

    2090

    瀏覽量

    73404
  • 微信
    +關(guān)注

    關(guān)注

    6

    文章

    508

    瀏覽量

    26437
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    SQL Server數(shù)據(jù)庫故障: SQL Server附加數(shù)據(jù)庫出現(xiàn)錯(cuò)誤823,附加數(shù)據(jù)庫失敗。數(shù)據(jù)庫沒有備份,無法通過備份恢復(fù)數(shù)據(jù)庫。
    的頭像 發(fā)表于 09-20 11:46 ?227次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—SQL Server<b class='flag-5'>數(shù)據(jù)庫</b>出現(xiàn)823錯(cuò)誤的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    阿里云與中興通訊達(dá)成開源數(shù)據(jù)庫合作

    近日,阿里云與中興通訊宣布達(dá)成開源數(shù)據(jù)庫領(lǐng)域的深度合作。中興通訊正式加入PolarDB開源社區(qū),并榮任首屆理事會(huì)成員單位,這一舉措標(biāo)志著兩大科技巨頭在數(shù)據(jù)庫領(lǐng)域的合作邁向新的高度。
    的頭像 發(fā)表于 05-17 10:47 ?476次閱讀

    阿里云與中興通訊達(dá)成開源數(shù)據(jù)庫合作,助推國產(chǎn)數(shù)據(jù)庫發(fā)展

    據(jù)悉,阿里云與中興通訊于5月16日公布了開源數(shù)據(jù)庫合作事宜。中興通訊正式宣布加入PolarDB開源社區(qū),并擔(dān)任首屆理事會(huì)成員單位。
    的頭像 發(fā)表于 05-16 16:34 ?373次閱讀

    新開源代碼證實(shí)!“鴻蒙原生版”正在積極開發(fā)中

    話不多說,直接看圖: 這是 MMKV 最新版本 v1.3.5 的發(fā)布說明。 MMKV 是團(tuán)隊(duì)開源的鍵值對(duì)(Key-Value)存儲(chǔ)系統(tǒng)
    發(fā)表于 05-08 17:08

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—raid5陣列上層Sql Server數(shù)據(jù)庫數(shù)據(jù)恢復(fù)案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境: 5塊硬盤組建一組RAID5陣列,劃分LUN供windows系統(tǒng)服務(wù)器使用。windows系統(tǒng)服務(wù)器內(nèi)運(yùn)行了Sql Server數(shù)據(jù)庫,存儲(chǔ)空間在操作系統(tǒng)層面劃分了三個(gè)
    的頭像 發(fā)表于 05-08 11:43 ?430次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—raid5陣列上層Sql Server<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    選擇 KV 數(shù)據(jù)庫最重要的是什么?

    經(jīng)常有客戶提到 KV 數(shù)據(jù)庫,但卻偏偏“不要 Redis”。比如有個(gè)做安全威脅分析平臺(tái)的客戶,他們明確表示自己對(duì)可靠性要求非常高,需要的不是開源 Redis 這種內(nèi)存緩存,而是 KV 數(shù)據(jù)庫
    的頭像 發(fā)表于 03-28 22:11 ?631次閱讀
    選擇 KV <b class='flag-5'>數(shù)據(jù)庫</b>最重要的是什么?

    阿維塔12發(fā)布3.2.0版本更新,新增多項(xiàng)功能優(yōu)化細(xì)節(jié)

    特殊車道智能通行功能:城市和鄉(xiāng)村的智駕領(lǐng)航輔助(NCA)和車道巡航輔助(LCC)均新增功能,支持通過潮汐車道、公交車道控制桿進(jìn)入NCA模式,并實(shí)現(xiàn)自動(dòng)駛出的操作。
    的頭像 發(fā)表于 03-28 14:27 ?474次閱讀

    深耕文檔型數(shù)據(jù)庫12載,SequoiaDB再開源

    1月15日,巨杉數(shù)據(jù)庫舉行SequoiaDB新特性及開源項(xiàng)目發(fā)布活動(dòng)。本次活動(dòng)回顧了巨杉數(shù)據(jù)庫深耕JSON文檔型數(shù)據(jù)庫12年的發(fā)展歷程與技術(shù)
    的頭像 發(fā)表于 01-16 13:06 ?237次閱讀

    oracle數(shù)據(jù)庫的基本操作

    Oracle數(shù)據(jù)庫是一種關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS),廣泛應(yīng)用于企業(yè)級(jí)應(yīng)用中。它具有強(qiáng)大的功能和靈活的配置選項(xiàng),可以滿足復(fù)雜的數(shù)據(jù)處理需求。本文將介紹Oracle
    的頭像 發(fā)表于 12-06 10:14 ?609次閱讀

    oracle數(shù)據(jù)庫的使用方法

    數(shù)據(jù)庫的使用方法,包括安裝和配置、基本操作、高級(jí)功能等方面。 一、安裝和配置 安裝Oracle數(shù)據(jù)庫前,您需要先下載合適的安裝包,根據(jù)操作系統(tǒng)的要求選擇相應(yīng)的版本。安裝Oracle
    的頭像 發(fā)表于 12-06 10:10 ?1104次閱讀

    oracle數(shù)據(jù)庫alert日志作用

    Oracle數(shù)據(jù)庫的alert日志是數(shù)據(jù)庫引擎和實(shí)例的核心組件之一,它記錄著數(shù)據(jù)庫的運(yùn)行狀況和事件。該日志對(duì)于數(shù)據(jù)庫的性能調(diào)優(yōu)、問題排查和安
    的頭像 發(fā)表于 12-06 10:08 ?1093次閱讀

    什么是JSON數(shù)據(jù)庫

    數(shù)據(jù)庫的顯著優(yōu)勢關(guān)于JSON數(shù)據(jù)庫的Q&A一、什么是JSON?首先,我們得明確“JSON”的含義。開發(fā)人員在創(chuàng)建業(yè)務(wù)邏輯、用戶界面、數(shù)據(jù)庫或后端系統(tǒng)時(shí),需要一種描述
    的頭像 發(fā)表于 12-02 08:04 ?766次閱讀
    什么是JSON<b class='flag-5'>數(shù)據(jù)庫</b>

    NoSQL 數(shù)據(jù)庫如何選型

    什么是NoSQL數(shù)據(jù)庫?為什么要使用NoSQL數(shù)據(jù)庫?鍵值數(shù)據(jù)庫內(nèi)存鍵值數(shù)據(jù)庫文檔數(shù)據(jù)庫列式數(shù)據(jù)庫
    的頭像 發(fā)表于 11-26 08:05 ?400次閱讀
    NoSQL <b class='flag-5'>數(shù)據(jù)庫</b>如何選型

    MySQL數(shù)據(jù)庫基礎(chǔ)知識(shí)

    MySQL 是一種開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它是目前最流行的數(shù)據(jù)庫之一。MySQL 提供了一種結(jié)構(gòu)化的方法來管理大量的數(shù)據(jù),并且具有高效、可靠和可擴(kuò)展的特性。本文將介紹 MySQL
    的頭像 發(fā)表于 11-21 11:09 ?898次閱讀

    OpenHarmony 4.0 Release版本發(fā)布,新增4000+ API

    近日,OpenHarmony 4.0 Release版本如期發(fā)布,開發(fā)套件同步升級(jí)到API 10。相比3.2 Release版本,OpenHarmony 4.0 Release版本
    的頭像 發(fā)表于 11-13 11:31 ?760次閱讀