国产高清在线免费观看-国产高清在线免费无码-国产高清在线男人的天堂-国产高清在线视频-国产高清在线视频精品视频-国产高清在线视频伊甸园

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

2025年:MySQL vs PostgreSQL

admin
2025年4月17日 18:2 本文熱度 470

在 2025 年的當(dāng)下,MySQL 無論是在功能特性集,質(zhì)量正確性,性能表現(xiàn),還是生態(tài)與社區(qū)上都被 PostgreSQL 拉開了差距,而且這個(gè)差距還在進(jìn)一步擴(kuò)大中。

今天我們就來對(duì) MySQL 與 PostgreSQL 進(jìn)行一個(gè)全方位的對(duì)比,從功能,性能,質(zhì)量,生態(tài)來全方位反映這幾年的生態(tài)變化。


功能

讓我們先從開發(fā)者最關(guān)注的東西 —— 功能特性開始說起。

新版本

昨天,MySQL 發(fā)布了 “創(chuàng)新版本” 9.3[3] 但是看上去和先前的 9.x 一樣,都是些修修補(bǔ)補(bǔ),看不到什么創(chuàng)新的東西。 搜索尚未發(fā)布的 PostgreSQL 18,你能看到無數(shù)特性預(yù)覽的介紹文章;而搜索 MySQL 9.3,能看到的是社區(qū)對(duì)此的抱怨與失望。

MySQL 老司機(jī)丁奇看完 ReleaseNote 之后表示,《MySQL創(chuàng)新版正在逐漸失去它的意義》,德哥看后寫了 《MySQL將保持平庸》。 對(duì)于 MySQL 的 “創(chuàng)新版本”,Percona CEO, Peter Zaitsev 也發(fā)三篇《MySQL將何去何從[4]》,《Oracle最終還是殺死了MySQL[5]》,《Oracle還能挽救MySQL嗎[6]》,公開表達(dá)了對(duì) MySQL 的失望與沮喪。

在最近幾年,MySQL 在新功能上乏善可陳,與突飛猛進(jìn)的 PostgreSQL 形成了鮮明的對(duì)比。


新功能

以數(shù)據(jù)庫(kù)領(lǐng)域最近兩年最為火爆的增量場(chǎng)景 —— 向量數(shù)據(jù)庫(kù)為例。在前兩年的 向量數(shù)據(jù)庫(kù)熱潮中,PostgreSQL 生態(tài)里就涌現(xiàn)出了至少六七款向量數(shù)據(jù)庫(kù)擴(kuò)展( pgvectorpgvector.rs,pg_embedding,laternpase,pgvectorscale, vchord),并在你追我趕的賽馬中卷出了新高度。最終在 AWS 的資源投入下,pgvector 在一年內(nèi)實(shí)現(xiàn)了 150x 的性能飛躍,將整個(gè)專用向量數(shù)據(jù)庫(kù)市場(chǎng)都給轟平了。

在當(dāng)下,PostgreSQL 生態(tài)正在進(jìn)行著 如火如荼的 DuckDB 縫合大賽 ,pg_duckdb[7]  pg_mooncake[8] 等擴(kuò)展甚至已經(jīng)進(jìn) ClickBench 分析性能榜單 T0 梯隊(duì), 也開始進(jìn)入 Thoughtworks 技術(shù)雷達(dá)評(píng)估 Radar[9],正在攻克真正的 OLTP 與 OLAP 融合問題,旨在替代 OLAP 大數(shù)據(jù)全家桶。 與此同時(shí)進(jìn)行的還有用于原地替代 ElasticSearch Tantivy/BM25 縫合大賽。

?

而 MySQL 在這段時(shí)間里更新了什么功能呢?一個(gè)不支持計(jì)算距離與索引的羞辱性 VECTOR 實(shí)現(xiàn)[10]

還有一個(gè)企業(yè)版專屬的 JS 存儲(chǔ)過程支持(開源版沒有?。?,而這是 PG 15 年前就可以通過 plv8 擴(kuò)展實(shí)現(xiàn)的功能了。

當(dāng) MySQL 還局限在 “關(guān)系型 OLTP 數(shù)據(jù)庫(kù)” 的定位時(shí), PostgreSQL 早已經(jīng)放飛自我,從一個(gè)關(guān)系型數(shù)據(jù)庫(kù)發(fā)展成了一個(gè)多模態(tài)的數(shù)據(jù)庫(kù),成為了一個(gè)數(shù)據(jù)管理的抽象框架與開發(fā)平臺(tái)了。


擴(kuò)展性

來自 CMU 的 Abigale Kim 對(duì)主流數(shù)據(jù)庫(kù)的可擴(kuò)展性[11]進(jìn)行了研究:PostgreSQL 有著所有 DBMS 中最好的 可擴(kuò)展性(Extensibility),以及其他數(shù)據(jù)庫(kù)生態(tài)難望其項(xiàng)背的擴(kuò)展插件數(shù)量 —— 375+,這還只是 PGXN 注冊(cè)在案的實(shí)用插件,實(shí)際生態(tài)擴(kuò)展總數(shù)已經(jīng)破千[12]。至少在開源的 PostgreSQL RDS 發(fā)行版 Pigsty 中,就已經(jīng)開箱即用的提供 405 個(gè)擴(kuò)展的 DEB/RPM 包了。

PostgreSQL 有著一個(gè)繁榮的擴(kuò)展生態(tài) —— 地理空間,時(shí)間序列,向量檢索,機(jī)器學(xué)習(xí),OLAP分析,全文檢索,圖數(shù)據(jù)庫(kù);這些擴(kuò)展讓 PostgreSQL 真正成為一專多長(zhǎng)的全棧數(shù)據(jù)庫(kù) —— 單一數(shù)據(jù)庫(kù)選型便可替代各式各樣的專用組件: MySQL,MongoDB,Kafka,Redis,ElasticSearch,Neo4j,甚至是專用分析數(shù)倉(cāng)與數(shù)據(jù)湖。

PostgreSQL正在吞噬數(shù)據(jù)庫(kù)世界[13] —— 它正在通過插件的方式,將整個(gè)數(shù)據(jù)庫(kù)世界內(nèi)化其中?!?/span>一切皆用 Postgres[14]” 也已經(jīng)不再是少數(shù)精英團(tuán)隊(duì)的前沿探索,而是成為了一種進(jìn)入主流視野的最佳實(shí)踐。

而在新功能支持上,MySQL 卻顯得十分消極 —— 一個(gè)應(yīng)該有大量 Breaking Change 的“創(chuàng)新大版本更新”,不是糊弄人的擺爛特性,就是企業(yè)級(jí)的特供雞肋,一個(gè)大版本就連雞零狗碎的小修小補(bǔ)都湊不夠數(shù)。


兼容性

除了海量擴(kuò)展外,PostgreSQL 生態(tài)還有更離譜的:兼容功能:你還可以使用擴(kuò)展或者分支,實(shí)現(xiàn)對(duì)其他數(shù)據(jù)庫(kù)的兼容。

其中,openHalo 對(duì) MySQL 生態(tài)可謂釜底抽薪 —— 在 PG 上直接兼容 MySQL 的線纜協(xié)議,這意味著 MySQL 應(yīng)用可以在不改驅(qū)動(dòng)/代碼的情況下遷移到 PostgreSQL 上來。 另外,OrioleDB 在原生 PostgreSQL 的基礎(chǔ)上,增加了云原生 Undo 存儲(chǔ)引擎,解決了膨脹/XID回卷問題,并實(shí)現(xiàn)了 4x 的吞吐量性能。

這并非紙面上的 PR 稿,這些內(nèi)核/擴(kuò)展都已經(jīng)全部在 PostgreSQL 發(fā)行版 Pigsty 中作為開箱即用的 RDS 服務(wù)直接可用。在這種全能性能怪獸面前,MySQL 將何去何從?


性能

缺少功能也許并不是一個(gè)無法克服的問題 —— 對(duì)于一個(gè)數(shù)據(jù)庫(kù)來說,只要它能將自己的本職工作做得足夠出彩,那么架構(gòu)師總是可以多費(fèi)些神,用各種其他的數(shù)據(jù)積木一起拼湊出所需的功能。

性能劣化的MYSQL

MySQL 曾引以為傲的核心特點(diǎn)便是 性能 —— 至少對(duì)于互聯(lián)網(wǎng)場(chǎng)景下的簡(jiǎn)單 OLTP CURD 來說,它的性能是非常不錯(cuò)的。然而不幸地是,這一點(diǎn)也正在遭受挑戰(zhàn):Percona 的博文《Sakila:你將何去何從[15]》中提出了一個(gè)令人震驚的結(jié)論:

MySQL 的版本越新,性能反而越差。

根據(jù) Percona 的測(cè)試,在 sysbench 與 TPC-C 測(cè)試下,最新 MySQL 8.4 版本的性能相比 MySQL 5.7 出現(xiàn)了平均高達(dá) 20% 的下降。而 MySQL 專家 Mark Callaghan 進(jìn)一步進(jìn)行了 詳細(xì)的性能回歸測(cè)試[16],確認(rèn)了這一現(xiàn)象:

MySQL 8.0.36 相比 5.6 ,QPS 吞吐量性能下降了 25% ~ 40% !


雞肋的分析性能

盡管 MySQL 的優(yōu)化器在 8.x 有一些改進(jìn),一些復(fù)雜查詢場(chǎng)景下的性能有所改善,但分析與復(fù)雜查詢本來就不是 MySQL 的長(zhǎng)處與適用場(chǎng)景,只能說聊勝于無。相反,如果作為基本盤的 OLTP CRUD 性能出了這么大的折損,那確實(shí)是完全說不過去的。

ClickBench:MySQL 打這個(gè)榜確實(shí)有些不明智

而另一方面,PostgreSQL 在 DuckDB 系列擴(kuò)展與列存擴(kuò)展的加持下,甚至可以達(dá)到比肩 ClickHouse 的分析性能。

Peter Zaitsev 在博文《Oracle最終還是殺死了MySQL[18]》中評(píng)論:“與 MySQL 5.6 相比,MySQL 8.x 單線程簡(jiǎn)單工作負(fù)載上的性能出現(xiàn)了大幅下滑。你可能會(huì)說增加功能難免會(huì)以犧牲性能為代價(jià),但 MariaDB 的性能退化要輕微得多,而 PostgreSQL 甚至能在 新增功能的同時(shí)顯著提升性能[19]”。


穩(wěn)步提升的PostgreSQL性能

MySQL的性能隨版本更新而逐步衰減,但在同樣的性能回歸測(cè)試中,PostgreSQL 性能卻可以隨版本更新有著穩(wěn)步提升。特別是在最關(guān)鍵的寫入吞吐性能上,最新的 PostgreSQL 17beta1 相比六年前的 PG 10 甚至有了 30% ~ 70% 的提升。

在 Mark Callaghan 的 性能橫向?qū)Ρ?/span>[20] (sysbench 吞吐場(chǎng)景) 中,我們可以看到五年前 PG 11 與 MySQL 5.6 的性能比值(藍(lán)),與當(dāng)下 PG 16 與 MySQL 8.0.34 的性能比值(紅)。PostgreSQL 和 MySQL 的性能差距在這五年間拉的越來越大。

幾年前的業(yè)界共識(shí)是 PostgreSQL 與 MySQL 在 簡(jiǎn)單 OLTP CRUD 場(chǎng)景 下的性能基本相同。然而此消彼長(zhǎng)之下,現(xiàn)在 PostgreSQL 的性能已經(jīng)遠(yuǎn)遠(yuǎn)甩開 MySQL 了。 PostgreSQL 的各種讀吞吐量相比 MySQL 高 25% ~ 100% 不等,在一些寫場(chǎng)景下的吞吐量更是達(dá)到了 200% 甚至 500% 的恐怖水平。


在真實(shí)場(chǎng)景中的對(duì)比

一個(gè)有趣的佐證是知名開源項(xiàng)目 JuiceFS[21] 對(duì)不同數(shù)據(jù)庫(kù)作為元數(shù)據(jù)引擎的性能測(cè)試。

在這個(gè)例子中,我們可以很清晰的看出 MySQL 和 PostgreSQL 在一個(gè)真實(shí)三方評(píng)測(cè)中的性能差距。

另一個(gè)非常有意思的三方對(duì)比案例來自 Dolt ,這是一個(gè)做 MySQL 分叉起家的公司,最近開始涉足 PostgreSQL 。他們自己測(cè)出來的結(jié)果都不敢相信,甚至懷疑 PG 是不是作弊了: https://www.dolthub.com/blog/2023-12-15-benchmarking-postgres-mysql-dolt/

更多更詳細(xì)關(guān)于 PostgreSQL 與 MySQL 與 PostgreSQL 的性能評(píng)測(cè),我建議各位參考 Mark Callaghan 發(fā)表在 Small Datum 上的文章。這是前 Google / Meta 的 MySQL Tech Lead 。 盡管他的主要職業(yè)生涯在與 MySQL,Oracle,MongoDB 打交道,并非 PostgreSQL 專家,但他嚴(yán)謹(jǐn)?shù)臏y(cè)試方法與結(jié)果分析為讀者帶來了許多數(shù)據(jù)庫(kù)性能方面的洞見,比瞎評(píng)測(cè)的偽專家高到不知道哪里去了。

MySQL 賴以安身立命的性能優(yōu)勢(shì),已經(jīng)不復(fù)存在了。

質(zhì)量

如果新版本只是性能不好,總歸還有辦法來優(yōu)化修補(bǔ)。但如果是質(zhì)量出了問題,那真就是無可救藥了。


正確性

例如,Percona 最近剛剛在 MySQL 8.0.38 以上的版本(8.4.x, 9.0.0)中發(fā)現(xiàn)了一個(gè) 嚴(yán)重Bug[23] —— 如果數(shù)據(jù)庫(kù)里表超過 1萬張,那么重啟的時(shí)候 MYSQL 服務(wù)器會(huì)直接崩潰! 一個(gè)數(shù)據(jù)庫(kù)里有1萬張表并不常見,但也并不罕見 —— 特別是當(dāng)用戶使用了一些分表方案,或者應(yīng)用會(huì)動(dòng)態(tài)創(chuàng)建表的時(shí)候。而直接崩潰顯然是可用性故障中最嚴(yán)重的一類情形。

但 MySQL 的問題不僅僅是幾個(gè)軟件 Bug,而是根本性的問題 —— 《MySQL 糟糕的 ACID 正確性》指出,在正確性這個(gè)體面數(shù)據(jù)庫(kù)產(chǎn)品必須的基本屬性上,MySQL 的表現(xiàn)一塌糊涂。

權(quán)威的分布式事務(wù)測(cè)試組織 JEPSEN[24] 研究發(fā)現(xiàn),MySQL 文檔聲稱實(shí)現(xiàn)的 可重復(fù)讀/RR 隔離等級(jí),實(shí)際提供的正確性保證要弱得多 —— MySQL 8.0.34 默認(rèn)使用的 RR 隔離等級(jí)實(shí)際上并不可重復(fù)讀,甚至既不原子也不單調(diào),連 單調(diào)原子視圖/MAV 的基本水平都不滿足。這意味著 MySQL 的 RR 隔離等級(jí)實(shí)際上還不如絕大多數(shù) DBMS 的 RC 隔離等級(jí)(MAV)。

MySQL 的 ACID 存在缺陷,且與文檔承諾不符 —— 而輕信這一虛假承諾可能會(huì)導(dǎo)致嚴(yán)重的正確性問題,例如數(shù)據(jù)錯(cuò)漏與對(duì)賬不平。對(duì)于一些數(shù)據(jù)完整性很關(guān)鍵的場(chǎng)景 —— 例如金融,這一點(diǎn)是無法容忍的。

此外,能“避免”這些異常的 MySQL 可串行化/SR 隔離等級(jí)難以生產(chǎn)實(shí)用,也非官方文檔與社區(qū)認(rèn)可的最佳實(shí)踐;盡管專家開發(fā)者可以通過在查詢中顯式加鎖來規(guī)避此類問題,但這樣的行為極其影響性能,而且容易出現(xiàn)死鎖。

與此同時(shí),PostgreSQL 在 9.1 引入的 可串行化快照隔離(SSI) 算法可以用極小的性能代價(jià)提供完整可串行化隔離等級(jí) —— 而且 PostgreSQL 的 SR 在正確性實(shí)現(xiàn)上毫無瑕疵 —— 這一點(diǎn)即使是 Oracle 也難以企及。

李海翔教授在《一致性八仙圖》論文中,系統(tǒng)性地評(píng)估了主流 DBMS 隔離等級(jí)的正確性,圖中藍(lán)/綠色代表正確用規(guī)則/回滾避免異常;黃A代表異常,越多則正確性問題就越多;紅“D”指使用了影響性能的死鎖檢測(cè)來處理異常,紅D越多性能問題就越嚴(yán)重;

不難看出,這里正確性最好(無黃A)的實(shí)現(xiàn)是 PostgreSQL SR,與基于PG的 CockroachDB SR,其次是略有缺陷 Oracle SR;主要都是通過機(jī)制與規(guī)則避免并發(fā)異常;而 MySQL 出現(xiàn)了大面積的黃A與紅D,正確性水平與實(shí)現(xiàn)手法糙地不忍直視。

做正確的事很重要,而正確性是不應(yīng)該拿來做利弊權(quán)衡的。在這一點(diǎn)上,開源關(guān)系型數(shù)據(jù)庫(kù)兩巨頭 MySQL 和 PostgreSQL 在早期實(shí)現(xiàn)上就選擇了兩條截然相反的道路: MySQL 追求性能而犧牲正確性;而學(xué)院派的 PostgreSQL 追求正確性而犧牲了性能。

在互聯(lián)網(wǎng)風(fēng)口上半場(chǎng)中,MySQL 因?yàn)樾阅軆?yōu)勢(shì)占據(jù)先機(jī)乘風(fēng)而起。但當(dāng)性能不再是核心考量時(shí),正確性就成為了 MySQL 的致命出血點(diǎn)。 更為可悲的是,MySQL 連犧牲正確性換來的性能,都已經(jīng)不再占優(yōu)了,這著實(shí)讓人唏噓不已。


完備性

SQL 特性與標(biāo)準(zhǔn)支持:PostgreSQL 一直以高度符合 SQL 標(biāo)準(zhǔn)著稱,支持復(fù)雜查詢、窗口函數(shù)、公共表表達(dá)式(CTE)、遞歸查詢、完整的外鍵約束等功能,并且實(shí)現(xiàn)了豐富的 SQL/JSON 標(biāo)準(zhǔn)和自定義函數(shù)。 MySQL 過去在標(biāo)準(zhǔn)支持上相對(duì)落后,但自 8.0 版本起補(bǔ)齊了一些短板:如支持窗口函數(shù)和 CTE(包括遞歸 CTE)等,使其在查詢特性上拉近了距離。 但是魔鬼在細(xì)節(jié)中,許多看上去 “你有我也有” 的功能,內(nèi)在的實(shí)現(xiàn)水準(zhǔn)是完全不一樣的。

以 Ecoding 字符編碼與 Collation 排序規(guī)則為例,這是很典型的企業(yè)級(jí)應(yīng)用需要的多語言關(guān)鍵特性。PostgreSQL 在 ICU 支持下提供了 42 種字符集編碼與 815 種排序規(guī)則支持,覆蓋了幾乎你能想象到的一切排序方法。 而 MySQL 在基本上就只有 五種字符集和幾十個(gè)基于此的排序規(guī)則[26]。這是一個(gè)很好的微觀細(xì)節(jié)樣本,體現(xiàn)出 PostgreSQL 與 MySQL 在細(xì)節(jié)上的用心程度與差異。


生態(tài)

對(duì)一項(xiàng)技術(shù)而言,用戶的規(guī)模直接決定了生態(tài)的繁榮程度。瘦死的駱駝比馬大,爛船也有三斤釘。 MySQL 曾經(jīng)搭乘互聯(lián)網(wǎng)東風(fēng)扶搖而起,攢下了豐厚的家底,它的 Slogan 就很能說明問題 —— “世界上最流行的開源關(guān)系型數(shù)據(jù)庫(kù)”。

開發(fā)者

MySQL 的 Slogan 是 “世界上最流行的開源關(guān)系型數(shù)據(jù)庫(kù)”,但似乎現(xiàn)在并沒有多少權(quán)威數(shù)據(jù)能支持這個(gè)說法。

相反的是,在 StackOverflow 過去八年的全球開發(fā)者調(diào)研中,我們可以觀察到 PostgreSQL 在開發(fā)者中的使用率節(jié)節(jié)攀升,并于 2023 年第一次超過 MySQL ,成為最流行的數(shù)據(jù)庫(kù)。

從各個(gè)角度上來看,MySQL “最流行” 的稱號(hào)已經(jīng)名不副實(shí)了。而 PostgreSQL 已經(jīng)成為這幾年最流行的數(shù)據(jù)庫(kù),并且不需要不需要開源/關(guān)系型等定語修飾。

在需求度,喜愛度,流行度上,PostgreSQL 在過去八年的變化趨勢(shì)非常明顯:

即使是 DB-Engine 這樣的熱度榜單,也可以清楚的看出過去10年里,哪些數(shù)據(jù)庫(kù)在崛起,哪些數(shù)據(jù)庫(kù)在過氣。并印證著這一趨勢(shì)。

在最為活躍的前端開發(fā)者生態(tài)中,PostgreSQL 已經(jīng)憑借豐富的功能特性,以壓倒性優(yōu)勢(shì)成為最受歡迎的的數(shù)據(jù)庫(kù)。例如,在 Vercel 支持的 7 款存儲(chǔ)服務(wù)上,四個(gè)是 Postgres 衍生(Neon,Supabase,Nile,Gel),兩個(gè) Redis 衍生,一個(gè) DuckDB ,完全不見 MySQL 的蹤影。

而根據(jù) DBDB.io 的統(tǒng)計(jì)數(shù)據(jù),派生自 PostgreSQL 的數(shù)據(jù)庫(kù)項(xiàng)目也顯著超過了 MySQL。

廠商

最直觀的數(shù)據(jù): AWS RDS 上 PostgreSQL 實(shí)例的數(shù)量與 MySQL 實(shí)例的數(shù)量已經(jīng)達(dá)到了 6:4 ,也就是 PG 實(shí)例的數(shù)量已經(jīng)比 MySQL 要多 50% 了。 
詳情參考:《PostgreSQL取得對(duì)MYSQL的壓倒性優(yōu)勢(shì)》

即使是在 MYSQL 曾經(jīng)占據(jù)壓倒性優(yōu)勢(shì)的中國(guó)大陸,來自阿里云 RDS 實(shí)例數(shù)的樣本也說明 MYSQL:PG 從前幾年的 10:1 快速縮小到 5:1,并且增量上 PG 也已經(jīng)超過 MYSQL 了。

從商業(yè)角度看,云廠商已經(jīng)將重注下在了 PostgreSQL,而非 MySQL 上。 例如 AWS RDS (MySQL+PG)產(chǎn)品經(jīng)理是 PostgreSQL 社區(qū)核心組成員 Jonathan Katz,也是最近 pg/pgvector 在向量數(shù)據(jù)庫(kù)領(lǐng)域崛起關(guān)鍵推手之一。

最近的 Aurora 新品分布式 DSQL 只有 PostgreSQL 兼容,沒搞 MySQL 的,而以前這種事從來都是 MySQL 優(yōu)先,這次似乎直接放棄 MYSQL 支持了。 Google 的 OLTP 數(shù)據(jù)庫(kù) AlloyDB 也選擇完全兼容 PostgreSQL ,并且也在 Spanner 中提供 PostgreSQL 了。 國(guó)內(nèi)云廠商例如阿里云也選擇押寶 PostgreSQL 分支路線,例如獲得信創(chuàng)資質(zhì)認(rèn)證的 PolarDB 2.0 (Oracle)兼容其實(shí)就是基于 PolarDB PG 二次分枝的版本。

資本市場(chǎng)

最近的 大額融資紀(jì)錄,也基本發(fā)生在 PostgreSQL 生態(tài)中。

而 MySQL 生態(tài)屈指可數(shù),基本只有 SingleStore,TiDB ,而原本生態(tài)中全村的希望 MariaDB 則一路跌的干脆直接要退市私有化了。

大型用例

對(duì)于制造業(yè),金融,非互聯(lián)網(wǎng)場(chǎng)景,PostgreSQL 憑借其強(qiáng)大的功能特性與正確性,已經(jīng)成為了許多大型企業(yè)的首選數(shù)據(jù)庫(kù)。

例如在我任職 Apple 期間,我們部門使用 PostgreSQL 存儲(chǔ)所有工廠的工業(yè)互聯(lián)網(wǎng)數(shù)據(jù)并進(jìn)行數(shù)據(jù)分析。包括我們部門在內(nèi)的許多項(xiàng)目都在使用 PostgreSQL,甚至有一個(gè)內(nèi)部的社區(qū)與興趣小組。

大型互聯(lián)網(wǎng)公司受制于歷史路徑依賴于慣性仍然保留有大量 MySQL,但也基本開始兩頭下注,很多 PostgreSQL 的支持者都是微軟,AWS,Apple,Google 這樣的大公司。而在新興創(chuàng)業(yè)公司中,PostgreSQL 更是已經(jīng)取得顯著優(yōu)勢(shì)。 例如,Cursor、 Dify、Notion 這樣的 AI 新寵都默認(rèn)使用 PostgreSQL 作為元數(shù)據(jù)存儲(chǔ)。支付明星企業(yè) Strip 也在一些系統(tǒng)中使用 PostgreSQL 進(jìn)行分析。

Cloudflare 與 Vercel 的內(nèi)部系統(tǒng)大量使用了 PostgreSQL, Node.js 社區(qū)項(xiàng)目也明顯對(duì) PostgreSQL 有偏好(例如 Prisma ORM 對(duì)PG 支持更完善)。很多開源新項(xiàng)目都默認(rèn)選擇 PostgreSQL 作為其首選數(shù)據(jù)庫(kù) —— 如果不是唯一選擇的話。


MYSQL 到底怎么了?

究竟是誰殺死了 MySQL,難道是 PostgreSQL 嗎?Peter Zaitsev 在《Oracle最終還是殺死了MySQL[27]》一文中控訴 —— Oracle 的不作為與瞎指揮最終害死了 MySQL;并在后續(xù)《Oracle還能挽救MySQL嗎[28]》一文中指出了真正的根因:

MySQL 的知識(shí)產(chǎn)權(quán)被 Oracle 所擁有,它不是像 PostgreSQL 那種 “由社區(qū)擁有和管理” 的數(shù)據(jù)庫(kù),也沒有 PostgreSQL 那樣廣泛的獨(dú)立公司貢獻(xiàn)者。不論是 MySQL 還是其分叉 MariaDB,它們都不是真正意義上像 Linux,PostgreSQL,Kubernetes 這樣由社區(qū)驅(qū)動(dòng)的的原教旨純血開源項(xiàng)目,而是由單一商業(yè)公司主導(dǎo)。

比起向一個(gè)商業(yè)競(jìng)爭(zhēng)對(duì)手貢獻(xiàn)代碼,白嫖競(jìng)爭(zhēng)對(duì)手的代碼也許是更為明智的選擇 —— AWS 和其他云廠商利用 MySQL 內(nèi)核參與數(shù)據(jù)庫(kù)領(lǐng)域的競(jìng)爭(zhēng),卻不回饋任何貢獻(xiàn)。于是作為競(jìng)爭(zhēng)對(duì)手的 Oracle 也不愿意再去管理好 MySQL,而干脆自己也參與進(jìn)來搞云 —— 僅僅只關(guān)注它自己的 MySQL heatwave 云版本,就像 AWS 僅僅專注于其 RDS 管控和 Aurora 服務(wù)一樣。在 MySQL 社區(qū)凋零的問題上,云廠商也難辭其咎。


總結(jié)

盡管我是 PostgreSQL 的堅(jiān)定支持者,但我也贊同 Peter Zaitsev 的觀點(diǎn):

“如果 MySQL 徹底死掉了,開源關(guān)系型數(shù)據(jù)庫(kù)實(shí)際上就被 PostgreSQL 一家壟斷了,而壟斷并不是一件好事,因?yàn)樗鼤?huì)導(dǎo)致發(fā)展停滯與創(chuàng)新減緩。PostgreSQL 要想進(jìn)入全盛狀態(tài),有一個(gè) MySQL 作為競(jìng)爭(zhēng)對(duì)手并不是壞事”

至少,MySQL 可以作為一個(gè)鞭策激勵(lì),讓 PostgreSQL 社區(qū)保持凝聚力與危機(jī)感,不斷提高自身的技術(shù)水平,并繼續(xù)保持開放、透明、公正的社區(qū)治理模式,從而持續(xù)推動(dòng)數(shù)據(jù)庫(kù)技術(shù)的發(fā)展。

MySQL 曾經(jīng)也輝煌過,也曾經(jīng)是“開源軟件”的一桿標(biāo)桿,但再精彩的演出也會(huì)落幕。MySQL 正在死去 —— 更新疲軟,功能落后,性能劣化,質(zhì)量出血,生態(tài)萎縮,此乃天命,實(shí)非人力所能改變。而 PostgreSQL ,將帶著開源軟件的初心與愿景繼續(xù)堅(jiān)定前進(jìn) —— 它將繼續(xù)走 MySQL 未走完的路,寫 MySQL 未寫完的詩(shī)篇。

References

[3]9.3:https://dev.mysql.com/doc/refman/9.3/en/mysql-nutshell.html
[4]MySQL將何去何從:/blog/db/sakila-where-are-you-going
[5]Oracle最終還是殺死了MySQL:/blog/db/oracle-kill-mysql
[6]Oracle還能挽救MySQL嗎:/blog/db/can-oracle-save-mysql
[7]pg_duckdb:https://github.com/duckdb/pg_duckdb
[8]pg_mooncake:https://pgmooncake.com/
[9]Thoughtworks 技術(shù)雷達(dá)評(píng)估 Radar:https://www.thoughtworks.com/content/dam/thoughtworks/documents/radar/2025/04/tr_technology_radar_vol_32_cn.pdf
[10]羞辱性 VECTOR 實(shí)現(xiàn):https://dev.mysql.com/doc/refman/9.0/en/vector-functions.html
[11]主流數(shù)據(jù)庫(kù)的可擴(kuò)展性:https://abigalekim.github.io/assets/pdf/Anarchy_in_the_Database_PGConfDev2024.pdf
[12]實(shí)際生態(tài)擴(kuò)展總數(shù)已經(jīng)破千:https://gist.github.com/joelonsql/e5aa27f8cc9bd22b8999b7de8aee9d47
[13]PostgreSQL正在吞噬數(shù)據(jù)庫(kù)世界:/blog/pg/pg-eat-db-world
[14]一切皆用 Postgres:/blog/pg/just-use-pg/
[15]Sakila:你將何去何從:/blog/db/sakila-where-are-you-going/
[16]詳細(xì)的性能回歸測(cè)試:https://smalldatum.blogspot.com/2024/02/perf-regressions-in-mysql-from-5621-to.html
[17]:https://benchmark.clickhouse.com/
[18]Oracle最終還是殺死了MySQL:/blog/db/oracle-kill-mysql
[19]新增功能的同時(shí)顯著提升性能:https://smalldatum.blogspot.com/2024/06/postgres-17beta1-vs-sysbench-on-large.html
[20]性能橫向?qū)Ρ?https://smalldatum.blogspot.com/2023/10/postgres-vs-mysql-impact-of-cpu.html
[21]JuiceFS:https://juicefs.com/docs/zh/community/metadata_engines_benchmark/
[22]Postgres 17.4 與大型服務(wù)器上的 sysbench:https://smalldatum.blogspot.com/2025/03/postgres-174-vs-sysbench-on-large-server.html
[23]嚴(yán)重Bug:https://perconadev.atlassian.net/browse/PS-9306
[24]JEPSEN:https://jepsen.io/analyses/mysql-8.0.34
[25]:/blog/db/bad-mysql
[26]五種字符集和幾十個(gè)基于此的排序規(guī)則:https://dev.mysql.com/doc/refman/8.4/en/charset-mysql.html
[27]Oracle最終還是殺死了MySQL:/blog/db/sakila-where-are-you-going
[28]Oracle還能挽救MySQL嗎:https://pigsty.cc/blog/db/can-oracle-save-mysql


閱讀原文:https://mp.weixin.qq.com/s/NTd9_QRJRIu_XLbZ1zv7KA


該文章在 2025/4/17 18:02:19 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 自偷自拍亚洲综合精品 | 国产人成高清在线视频99 | 99久久婷婷五月综合色 | 国产在线高清一级毛片 | 日本熟妇乱人伦A片精品软件 | 亚洲性免费 | 尤物亚洲人成网线在线播放 | 亚洲国产va乱码毛片一级高清三 | 国产强奷在线播放免费不卡 | 国产午夜a理论毛 | 久久人妻无码aⅴ毛片a片动 | 午夜欧美日韩精品久 | 欧美激情一区二区三级高清视频 | 免费大黄网站 | 国产亚洲精品久久久久久豆腐 | 免费做A爰片久久毛片A片 | 麻豆AV无码精品一区二区 | 午夜免费啪频欢看视 | 亚洲卡一卡二卡三乱草莓 | 欧美国产精品精品 | 国产午夜三级片 | 高潮娇喘抽搐A片无码黄 | 夜夜精品无码一区二区三区 | AV亚洲AV永久无码精品网 | 日韩人妻黑人综合无码 | 日韩欧美亚洲—区精选 | 欧美日韩国产成人精品 | 亚洲国产丝袜美腿在线播放 | 无码日韩精品一区二区免费暖暖 | 无码国产精品一区二区高潮视频 | 精品久久久久久中文字幕大豆网 | 精品成人av一区二区三区 | 女人无遮挡裸交性做爰 | 在线va无卡无码高清 | 日韩美女一区二区三区四区 | 最新高清特级a级黄片一级成人亚洲 | 欧美一区二区三区激情视频 | 尤物无码一区 | 亚洲国产日韩精品一区 | 精品国产乱码久久久久久郑州公司 | 性欧美18处19处破在线观看 |