SQLite這么小眾的數據庫,到底是什么人在用?
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
前幾天在一個群里看到一位同學說:“SQLite這么小眾的數據庫,到底是什么人在用啊?” 首先要說的是 SQLite 可不是小眾的數據庫,相反,SQLite 是世界上裝機量最多的數據庫,遠超 MySQL,只不過比較低調而已。低調到我想在官網上找一個好看的用來當插圖的圖片都找不到,只能截一張官網首頁來撐一撐,看起來十分樸素。 我最早聽說 SQLite 是剛畢業(yè)工作的時候,我們部門做微軟內容管理產品的二次開發(fā),其中有一個客戶端即時溝通工具叫做 Lync,搭配上 LDAP 的組織架構,其功能就和現在的企業(yè)微信差不多。 Lync 支持二次擴展,結合我們的產品需要在其中做一些功能拓展,負責這項工作的是一位厲害的 C++ 大佬。有一次我和他聊起來,我說客戶端要記住用戶自己的配置和數據,是不是要在目錄下放一個配置文件啊,那數據量大了會不會很慢。他說,用配置文件也行,但是咱這個不用配置文件,用 SQLite。 也是孤陋寡聞,那是我第一次聽說 SQLite,才知道這也是個數據庫,只不過多用在客戶端而不是服務器上。 SQLiteSQLite是一個輕量級的嵌入式關系型數據庫管理系統(tǒng)。它由D. Richard Hipp在2000年開發(fā),它實現了一個小型、快速、獨立、高可靠性、功能齊全的SQL數據庫引擎。 SQLite 用C語言開發(fā),最開始的設計目標是嵌入式系統(tǒng),它可以在不需要單獨的服務器進程的情況下,直接嵌入到應用程序中。后來正好趕上智能手機等智能設備普及,正好契合 SQLite 的使用場景,于是大量的智能設備都在使用 SQLite 。這么說吧,你用的手機上,一定有 SQLite 存在。 像 MySQL 一樣,SQLite 也是開源且免費的,據官方統(tǒng)計,目前正在使用的 SQLite 數據庫超過 1 萬億個。 SQLite 也可以通過配置像MySQL 那樣裝在服務器上,通過網絡連接訪問,但是,完全沒有必要。 SQLite 支持C、C++、Java、Python、Swift等大多數語言直接使用。 為什么說你的手機上肯定有 SQLite 呢?因為 SQLite 會隨著應用程序代碼一起打包,所以這樣說來,你的手機上還不止一個 SQLite ,可能有很多,例如微信有一個、美團有一個、網易云音樂等等 APP ,都可能包含自己的 SQLite。 使用場景有哪些移動應用前面也一直在說手機上的SQLite。Android就默認集成了SQLite作為應用數據存儲的標準解決方案。 Apple 的 IOS 其實提供了自己的數據存儲方案,比如 CoreData,但是很多開發(fā)者都覺得官方提供的方案實在太難用,所以,有很多應用開發(fā)者還是選擇 SQLite 作為本地存儲方案使用。 嵌入式系統(tǒng)SQLite 本來就是為了嵌入式系統(tǒng)設計的,所以它的特點就是輕量和高性能嘛,這也使得他在嵌入式系統(tǒng)中被廣泛使用。包括嵌入式Linux設備、物聯(lián)網(IoT)設備、路由器,以及汽車電子系統(tǒng)等等。 桌面應用許多桌面應用程序使用SQLite作為其內部數據庫,我第一次聽說 SQLite 就是那位同事大佬為了拓展桌面客戶端。 尤其是一些純的本地應用,不需要聯(lián)網的,所有的配置和數據都會存在本地,這種場景正好適合SQLite 這種輕量級數據庫。 數據分析和處理SQLite還可以用于處理和分析小規(guī)模的數據集。例如,數據科學家可以使用SQLite來存儲和操作中小型數據集,以進行數據清理、轉換和分析。 網站加速最近看了一篇文章,介紹 Notion 技術團隊如何使用WASM SQLite在瀏覽器中加速Notion 的性能。 WebAssembly (WASM) 是一種低級字節(jié)碼格式,能夠在現代瀏覽器中高效運行。它被設計為一個可移植的目標,可以被多種編程語言編譯成它。它有接近原生的性能,同時可以安全地運行在瀏覽器的沙箱環(huán)境中。 所以為了追求更好的性能,有些像 Notion 這樣的網站直接將 SQLite 編譯到 WebAssembly,相當于在網站中加入了 SQLite。 這樣一來,更多的數據存到本地 SQLite ,減少不必要的網絡交互,對于網站的速度和性能會有很大提升。 該文章在 2024/7/31 12:24:13 編輯過 |
關鍵字查詢
相關文章
正在查詢... |