偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

世界上最流行的數(shù)據(jù)庫,只想活50年!

數(shù)據(jù)庫 其他數(shù)據(jù)庫
SQLite團(tuán)隊承諾保持它的C API 與磁盤格式的向后兼容性,這意味著現(xiàn)有應(yīng)用在未來幾十年升級 SQLite 時不需重寫或遷移,極大降低長期使用成本與數(shù)據(jù)遷移風(fēng)險(對長期存儲尤為重要)。

世界上最流行的數(shù)據(jù)庫是什么?

Oracle? MySQL? PostgreSQL?

都不是,答案是SQLite。

你可能沒聽說過它,但是它就在你身邊的:

每一臺智能手機(jī)中(Android 和iOS)

每一臺Mac電腦中

每一臺Windows 10 電腦中

每一個主要的瀏覽器中(Chrome, Firefox,Safari)

大部分的機(jī)頂盒當(dāng)中

每個PHP和Python安裝目錄中

很多流行的桌面應(yīng)用(微信、QQ、 DropBox、 Skype、iMessage、WhatsApp、 Adobe Acrobat Reader....)

......

不信的話可以在電腦中搜索一下 “*.db”,看看能發(fā)現(xiàn)多少個。

SQLite的發(fā)明人是Richard Hipp。

圖片

最近,Richard做了一個重要的決定:支持SQLite到2050年!

也就是說,從2000年問世算起,SQLite將“只有”50歲的壽命。

到2050年,技術(shù)會發(fā)生什么變化?還會有人使用SQLite嗎?

我覺得答案是肯定的。

關(guān)系數(shù)據(jù)庫不像別的軟件,它保存的是企業(yè)的關(guān)鍵數(shù)據(jù),是非常穩(wěn)定的,全球的信息系統(tǒng)在底層都依賴它們,一般情況下是不敢輕易動的。

像Oracle,1979年就出現(xiàn)了,現(xiàn)在已經(jīng)46歲了,還是世界上最大的數(shù)據(jù)庫。

PostgreSQL 29歲了, MySQL 30了,SQL Server 36了...... 它們都會繼續(xù)活下去。

即使出現(xiàn)了全新的、大幅領(lǐng)先關(guān)系數(shù)據(jù)庫的數(shù)據(jù)模型,很多遺留系統(tǒng)也會繼續(xù)使用關(guān)系數(shù)據(jù)庫。

在嵌入式關(guān)系數(shù)據(jù)庫領(lǐng)域,SQLite幾乎是一統(tǒng)江湖,沒有對手,它的應(yīng)用范圍如此廣泛,活到2050年不成問題。

為了完成這個宏偉的目標(biāo),Richard和團(tuán)隊做出了一些重要的決策:

向后兼容

SQLite團(tuán)隊承諾保持它的C API 與磁盤格式的向后兼容性,這意味著現(xiàn)有應(yīng)用在未來幾十年升級 SQLite 時不需重寫或遷移,極大降低長期使用成本與數(shù)據(jù)遷移風(fēng)險(對長期存儲尤為重要)。

這就意味著,你今天存入的SQLite數(shù)據(jù)庫的內(nèi)容,你的孫子輩依然可以輕松訪問。

SQLite的數(shù)據(jù)文件就是那個.db,它的格式不管在32位機(jī)器上,還是在64機(jī)器上,不管在大端還是小端平臺上都完全相同。

你可以把數(shù)據(jù)文件輕松從一個系統(tǒng)復(fù)制到另外一個系統(tǒng)(比如從Windows到Linux),無需做任何轉(zhuǎn)換。

詳盡的文檔

SQLite的策略非常獨(dú)特,它雖然開放源代碼,任何人都可以下載,但是卻不接受外界的代碼貢獻(xiàn)。

這二十多年,只有Richard為首的三四個人維護(hù)。

這個小團(tuán)隊編寫了大量的文檔,包括SQLite的架構(gòu),數(shù)據(jù)庫格式,查詢計劃,字節(jié)碼引擎、編譯期選項等等,非常詳盡,讓人嘆為觀止。

圖片圖片

它的文檔就像一本“SQLite 教科書”,幾乎涵蓋了從初學(xué)者到系統(tǒng)開發(fā)者所有層次的需求。

文檔里不僅告訴你“能怎么用”,還告訴你“為什么這樣設(shè)計”,甚至記錄某些歷史包袱和兼容性考慮。

比如SQLite 特有的“Railroad Diagram”(鐵道圖)來展示 SQL 語法,非常直觀,比光靠文字描述更容易理解。

圖片圖片

可以說,SQLite的文檔在開源軟件中是數(shù)一數(shù)二的。

優(yōu)秀的注釋

SQLite的注釋尤其驚人,注釋竟然超過了35%的內(nèi)容。

我們經(jīng)常會看到一些模版式的代碼注釋,說了相當(dāng)于沒說,但是SQLite不同,它的注釋非常實用,能解釋變量和對象的真正含義。

比如 btree.c、pager.c 這些核心文件,都會在開頭詳細(xì)描述 B-Tree、Pager 層的設(shè)計原理,讓讀代碼的人不用完全依賴外部文檔。

Richard Hipp 很注重可移植性與穩(wěn)定性,很多注釋會解釋為什么這樣設(shè)計、有哪些邊界情況需要處理。

注釋里經(jīng)常會提到“這是為了應(yīng)對某個 bug/某個平臺的限制”。

注釋和代碼風(fēng)格統(tǒng)一、簡潔。沒有花哨的行話,基本是“寫給未來的自己/其他人看的”,不像很多項目那樣只寫函數(shù)名的重復(fù)解釋。

目標(biāo)就是方便新程序員理解,使其在未來幾十年內(nèi)易于維護(hù)。

災(zāi)難備份

永遠(yuǎn)不用擔(dān)心SQLite源碼被篡改和丟失,因為Richard把源碼每個歷史版本都做了加密保護(hù),并且自動復(fù)制到不同數(shù)據(jù)中心的服務(wù)器中。

此外,全球還有數(shù)千個額外的Clone版本在各個私人服務(wù)器上。

更有意思的是,Richard說SQLite的這三四個人小團(tuán)隊也分布在世界各地,即使某個大陸沉沒了,SQLite依然可以存活。

保守/實用主義

計算機(jī)領(lǐng)域發(fā)展太快了,新技術(shù)層出不窮,每個人都會受到新潮流的影響。

但是SQLite開發(fā)者盡量避免被最新時髦做法所吸引,他們傾向于編寫經(jīng)得住時間考驗的代碼,這樣的代碼應(yīng)當(dāng)是“永恒的”,讓那些“未出生的程序員”在將來也能輕松閱讀、理解和維護(hù)。

說實話,我看到“未出生的程序員”是又震撼又疑惑,震撼的是今年Richard已經(jīng)64歲,如果干到2050年,都89了,他這么做,確實是在考慮未來代碼的傳承。

疑惑的是如果將來技術(shù)出現(xiàn)重大變化,還讓讓未來的程序員來看古老的代碼,是不是并不太好?

幸運(yùn)的是,SQLite用的是C語言這樣“永不過時的編程語言”,數(shù)據(jù)庫理論又非常穩(wěn)定,所以他做出這樣的選擇應(yīng)該也沒啥問題。

“變態(tài)”的測試

SQLite 的測試非常變態(tài),它不僅測試了源碼中的每個分支,每個判斷,甚至考慮了機(jī)器指令層面。

它會在不同的平臺(例如 x86_64、ARM64、32-bit 平臺),不同操作系統(tǒng)(Linux/Windows/macOS/嵌入式 RTOS)等,不同編譯器(GCC、Clang、MSVC、各種交叉編譯器)反復(fù)執(zhí)行,對不同優(yōu)化級別、不同代碼生成選項、多次構(gòu)建的重復(fù)檢查,找出偶發(fā)性/非確定性錯誤(比如未初始化內(nèi)存導(dǎo)致的隨機(jī)行為、競態(tài)、內(nèi)存重用引發(fā)的間歇性崩潰)。

它真正織起來一張龐大的安全網(wǎng),只要你改動的代碼引入了Bug,立刻就會被這張網(wǎng)給捕捉到。

它的深度和重復(fù)性可以說是“接近航空級別”,極端嚴(yán)格和全面。

這種長期的嚴(yán)格的承諾,不但讓SQLite坐穩(wěn)了嵌入式關(guān)系數(shù)據(jù)庫一哥的寶座,也贏得了那些需要長久保存數(shù)據(jù)機(jī)構(gòu)的信任。

比如世界上最大的圖書館,美國國會圖書館就把SQLite確定為保持?jǐn)?shù)字化內(nèi)容的推薦存儲格式,和SQLite并列的是XML、JSON 、CSV這樣標(biāo)準(zhǔn)的格式。

SQLite開放源碼,但不接受外界貢獻(xiàn),就這么幾個人,精雕細(xì)琢,不斷打磨,不但搞出了極其精良的代碼,極其詳盡的文檔,更是讓SQLite成了世界上最流行的數(shù)據(jù)庫。

在AIGC大行其道的今天,SQLite依然堅持這種“工匠式”的軟件開發(fā),實在是罕見。

正因為有這樣執(zhí)著的開發(fā)者,不追逐潮流,不為炫技而妥協(xié),它的穩(wěn)定性、可靠性和可維護(hù)性才得以跨越幾十年,成為每一臺設(shè)備、每一個應(yīng)用不可或缺的基石。

責(zé)任編輯:武曉燕 來源: 碼農(nóng)翻身
相關(guān)推薦

2024-01-11 09:11:08

數(shù)據(jù)庫SQLite管理

2025-03-27 00:45:00

2023-07-31 08:59:46

軟件FossilSQLite

2025-03-13 00:35:00

2023-06-28 11:14:18

2024-10-14 10:58:13

2010-09-02 13:21:46

2018-11-06 12:22:18

排序算法代碼

2015-11-25 09:41:05

數(shù)據(jù)中心

2013-04-24 09:57:08

Excel微軟

2014-09-05 09:08:58

2013-06-09 08:52:50

哈希表

2014-02-11 09:58:19

環(huán)保數(shù)據(jù)中心泰坦

2020-07-23 18:31:55

開源數(shù)據(jù)庫PostgreSQL

2023-02-28 08:59:47

PythonJavaJavaScript

2017-06-28 15:53:40

StackOverfl數(shù)據(jù)庫排名

2024-07-15 09:06:51

2013-07-09 10:11:41

程序設(shè)計大賽程序員

2015-05-07 10:10:29

GitHub編程語言

2009-09-11 10:41:36

數(shù)據(jù)中心
點贊
收藏

51CTO技術(shù)棧公眾號