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