99国产精品欲av蜜臀,可以直接免费观看的AV网站,gogogo高清免费完整版,啊灬啊灬啊灬免费毛片

網易首頁 > 網易號 > 正文 申請入駐

從 SQLite 到 DuckDB:查詢快 5 倍,存儲減少 80%

0
分享至


作者丨 Trace

譯者丨明知山

策劃丨李冬梅

Trace 從一開始就使用 SQLite 將所有數據存儲在用戶設備上。這是一個非常不錯的選擇—— SQLite 高度可靠,并且多種編程語言都提供了廣泛支持。畢竟,它是全球部署最廣泛的數據庫之一。

Trace 是一款 macOS 時間追蹤應用,可以監控你在 Mac 上的時間使用情況。鑒于它的功能,Trace 需要處理大量的數據,因此是一款數據密集型應用。盡管 SQLite 表現不錯,但我們仍然面臨兩個關鍵挑戰:

  • 隨著時間的推移,SQLite 數據庫文件體積會顯著增大。

  • 隨著數據集的增長,聚合查詢響應速度開始變慢。

我們嘗試了許多優化 SQLite 的方法,最好發現了 DuckDB:一個類似于 SQLite 的可嵌入式數據庫系統,專為分析工作負載進行了優化。經過一段時間的測試,證明 DuckDB 比 SQLite 更適合我們的時間追蹤應用。

為什么選擇 DuckDB

我們需要一個能夠嵌入到應用中,同時又快速且可靠的數據庫系統。SQLite 和 DuckDB 都可以滿足這些要求,但我們發現 DuckDB 在執行分析查詢時比 SQLite 快 3 到 5 倍,而且隨著數據量的增加,這種優勢更加明顯。

我們最復雜的查詢涉及多個大表和視圖的連接,并且大量依賴聚合 SQL 函數。在這種工作負載下,DuckDB 在這方面超越了 SQLite 也就不足為奇了。

DuckDB 的文檔寫道:

DuckDB 是為支持分析查詢工作負載(即在線分析處理,OLAP)而設計的。 為了高效地支持這種工作負載,縮短每個單獨值所消耗的 CPU 時間至關重要。在數據管理領域,實現這一目標的最新技術是矢量化或即時查詢執行引擎。DuckDB 使用了列存儲矢量化查詢執行引擎。雖然查詢仍為解釋執行,但會一次性處理大量值(一個“向量”)。這大大降低了傳統系統(如 PostgreSQL、MySQL 或 SQLite)中逐行處理數據的開銷。矢量化查詢執行在 OLAP 查詢中表現出更好的性能。


SQLite 逐行處理數據,而 DuckDB 使用列存儲矢量化執行引擎,同時處理大量值。這種處理方式特別適合我們的分析工作負載。

ClickBench 基準測試顯示,在某些分析查詢中,DuckDB 的性能比 SQLite 快了多達 1200 倍。


盡管 DuckDB 在我們的工作流程中讀取性能顯著優于 SQLite,但在單行操作方面,它不如 SQLite。在我們的測試中,SQLite 在這些場景下比 DuckDB 快大約兩倍。

盡管如此,另一個促使我們選擇 DuckDB 的關鍵因素是它的自動磁盤壓縮功能,這個功能大大減少了存儲空間。

我們創建了一個張表,與我們應用中使用的表類似,包含了兩個時間戳列、一個主鍵整數 ID 和一個布爾列。插入 100 萬行數據后,SQLite 數據庫文件大小為 101.6MB,而 DuckDB 僅需 23.1MB,體積減少了 77%。

遷移過程

遷移過程并非一帆風順。SQLite 的編程語言生態系統支持比 DuckDB 要好得多。Trace 的大部分代碼是用 Rust 編寫的,我們使用 Diesel ORM 來處理數據庫交互。

DuckDB 也有自己的 Rust 包,即 duckdb-rs,但它并不是 ORM。因此,我們不得不重寫代碼庫的核心部分,并自己實現了一個數據庫遷移系統。

在重寫過程中,我們還遇到了 DuckDB 的一些并發限制。以前使用 SQLite 時,我們可以打開多個并發連接,對同一張數據庫表執行操作。而使用 DuckDB 時,這種情況會導致大量數據丟失——一個連接的數據會被保存,另一個連接的數據則完全丟失。解決這個問題并不難,我們只需要確保在任何給定時間只有一個線程可以修改一張表。

另外需要注意的是,將 DuckDB 包含在我們的應用中幾乎使應用包的體積翻倍,從 26MB 增加到 44MB。雖然體積變大了,但對我們來說絕對值得。

我們是否完全放棄了 SQLite

沒有。盡管 DuckDB 在分析工作負載方面表現出色,但我們仍然依賴 SQLite 來執行一些核心操作。SQLite 更適合處理頻繁的小事務,因為它輕量,對簡單查詢速度更快,并且更有效地支持并發連接。

總 結

自從遷移到 DuckDB 以來:

  • 讀取查詢至少快了 3 到 5 倍(這也讓我們的儀表盤更快了)

  • 數據庫文件占用的存儲空間減少了約 80%

  • 應用包體積幾乎翻倍(從 26MB 增加到 44MB)

總體而言,我們對這次遷移非常滿意,并且期待繼續使用 DuckDB。

https://trytrace.app/blog/migrating-from-sqlite-to-duckdb/

聲明:本文由 InfoQ 翻譯,未經許可禁止轉載。

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
不許波音進入!1821架波音客機遍布中國,中國有兩張底牌可打?

不許波音進入!1821架波音客機遍布中國,中國有兩張底牌可打?

林子說事
2025-04-16 21:01:32
取消1.9萬億出口退稅,利大于弊

取消1.9萬億出口退稅,利大于弊

克萊恩財經
2025-04-14 23:08:28
TVB知名演員楊證樺被拍到在演唱會當保安,本人回應

TVB知名演員楊證樺被拍到在演唱會當保安,本人回應

大象新聞
2025-04-16 07:22:04
發表辱華言論、移居美國,“公知女神”柴靜,如今下場咎由自取

發表辱華言論、移居美國,“公知女神”柴靜,如今下場咎由自取

附允歷史觀
2024-08-22 11:15:44
中美貿易進入速凍模式,結局躲不過7個字,美國準備關閉10大使館

中美貿易進入速凍模式,結局躲不過7個字,美國準備關閉10大使館

吳欣純Deborah
2025-04-16 16:31:29
浙江女子因穿特色衣服坐地鐵引發熱議,網友感嘆形象受損。

浙江女子因穿特色衣服坐地鐵引發熱議,網友感嘆形象受損。

星辰生肖館
2025-01-25 00:32:27
極石汽車創始人昌敬清空賬號,去年因“套現近9億卻勸投資者耐心一點”登熱搜

極石汽車創始人昌敬清空賬號,去年因“套現近9億卻勸投資者耐心一點”登熱搜

FM93浙江交通之聲
2025-04-16 00:16:05
寶馬x7臉打腫了!問界新車一小時2萬大定,余承東創新詞,太能打

寶馬x7臉打腫了!問界新車一小時2萬大定,余承東創新詞,太能打

牛斯克
2025-04-16 21:03:49
浙江退休老人養老金將喜迎2025年調整,2000元和4000元各漲多少?

浙江退休老人養老金將喜迎2025年調整,2000元和4000元各漲多少?

暖心人社
2025-04-16 22:08:50
收回臺灣不是最重要的,要是確認俄羅斯不敗,中國將迎百年大變局

收回臺灣不是最重要的,要是確認俄羅斯不敗,中國將迎百年大變局

小玡說故事
2025-04-17 00:33:10
男子疑因思念亡妻,獨自完成與妻子的約定后毅然赴死!家屬回應

男子疑因思念亡妻,獨自完成與妻子的約定后毅然赴死!家屬回應

烏娛子醬
2025-04-16 15:52:52
山西訂婚強奸案爭議解讀 律師:對方說"不"必須停

山西訂婚強奸案爭議解讀 律師:對方說"不"必須停

看看新聞Knews
2025-04-16 14:43:33
穆帥:2010年歐冠半決賽次回合0-1巴薩是我生涯最激動人心的比賽

穆帥:2010年歐冠半決賽次回合0-1巴薩是我生涯最激動人心的比賽

直播吧
2025-04-16 14:05:11
S媽曝具俊曄每天都去金寶山,和小S根本走不出來,汪小菲遭痛批!

S媽曝具俊曄每天都去金寶山,和小S根本走不出來,汪小菲遭痛批!

古希臘掌管月桂的神
2025-04-16 13:48:57
中國95%靠進口,美國儲量全球第一,如果美國斷供中國如何應對?

中國95%靠進口,美國儲量全球第一,如果美國斷供中國如何應對?

奉壹數碼
2025-04-14 01:50:40
特朗普點燃全球反美情緒!高盛:美國經濟今年恐“失血”900億美元

特朗普點燃全球反美情緒!高盛:美國經濟今年恐“失血”900億美元

財聯社
2025-04-16 10:24:02
林更新新歡實錘曝光!趙麗穎被罵上熱搜,CP粉集體破防

林更新新歡實錘曝光!趙麗穎被罵上熱搜,CP粉集體破防

阿矗論古今
2025-04-16 15:53:51
貿易談判進展甚微,歐盟準備繼續推進關稅反制措施

貿易談判進展甚微,歐盟準備繼續推進關稅反制措施

財聯社
2025-04-17 01:24:00
明晚起,北京全市大幅下調!

明晚起,北京全市大幅下調!

美麗大北京
2025-04-16 18:05:23
美玩具協會主席談對華高額關稅:美公司無法達到中國相應產能 圣誕假期岌岌可危

美玩具協會主席談對華高額關稅:美公司無法達到中國相應產能 圣誕假期岌岌可危

財聯社
2025-04-16 16:43:09
2025-04-17 03:47:00
InfoQ incentive-icons
InfoQ
有內容的技術社區媒體
11023文章數 51225關注度
往期回顧 全部

科技要聞

華為問界M8售價公布:36.98萬元起

頭條要聞

鄭永年:特朗普逼中國簽下新版"廣場協議"幾無可能

頭條要聞

鄭永年:特朗普逼中國簽下新版"廣場協議"幾無可能

體育要聞

對著木板踢球的小鎮姑娘 成了皇馬第一人

娛樂要聞

娛樂圈的“現實”在岳云鵬身上應驗了

財經要聞

增長5.4% 一季度GDP增速為何超預期?

汽車要聞

又帥又快超實用 極氪007GT獵裝車才是完美的車?

態度原創

親子
藝術
數碼
教育
公開課

親子要聞

教娃唱歌反被上一課,這屆小孩的音樂天賦太絕了!

藝術要聞

故宮珍藏的墨跡《十七帖》,比拓本更精良,這才是地道的魏晉寫法

數碼要聞

OPPO移動智能產品首銷創紀錄:近七成手表用戶來自蘋果華為

教育要聞

看看三年級同學的算式謎題,大家幾分鐘能做出正確答案來呢

公開課

李玫瑾:為什么性格比能力更重要?

無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 万宁市| 西林县| 台南市| 宁波市| 武邑县| 麟游县| 加查县| 上思县| 云林县| 涞水县| 宜都市| 红河县| 漳浦县| 陆丰市| 天镇县| 泰来县| 平昌县| 阳高县| 冷水江市| 南充市| 周至县| 禹州市| 旬邑县| 连州市| 甘谷县| 肥西县| 红安县| 桐乡市| 花莲县| 叙永县| 时尚| 定结县| 姚安县| 吕梁市| 观塘区| 新丰县| 化州市| 阳信县| 淮南市| 嘉定区| 平凉市|