MySQL,不要再自以爲是了

前 Oracle 公司首席軟件工程師、MySQL 優化器團隊成員 Steinar H. Gunderson 在自 Oracle 離職前夕發佈了一篇名爲《Leaving MySQL》的博客。他在博客中寫道,MySQL 是一個相當糟糕的數據庫,並強烈建議大家應該考慮使用 Postgres。

Gunderson 還補充稱,“不要相信 MariaDB 有多好。Monty 和他的手下離開是因爲他們對新的管理方式不滿意,而不是因爲他們有一天突然醒悟過來,意識到他們在代碼中造成了多麼大的混亂”。MariaDB 是 MySQL 分支,由 MySQL 的創始人 Michael “Monty” Widenius 所創建;被設計爲 MySQL 的直接替代產品。

Gunderson 在博客中描述了自己加入 MySQL 團隊時的感受, 表示:

來到 MySQL 就像進入了一個平行宇宙,那裏有很多人真正相信 MySQL 是一個最先進的產品。同時,我參加了培訓並被告知優化器是如何在內部工作的;我真的需要一些緩衝時間來接受幾乎所有的東西都是多麼的原始。這感覺很奇怪,但我想你很快就會習慣了。從某種意義上說,這並沒有讓我感到困擾;很多糟糕的代碼意味着有很多改進的機會,而且管理層也非常支持大規模的重構工作。更令人震驚的是那些堅持認爲一切都很好的人(似乎大多數 MySQL 用戶和開發人員並沒有真正地使用過其他數據庫);甚至像執行器這樣明顯瘋狂的東西,在那裏所有東西都是一個大塊、所有東西都與其他東西相互作用,也被稱譽爲'高效'(其實不然)。

並針對上述言論舉例稱,譬如因爲沒有模塊化,分類器必須關注它的輸入是來自 table scan 還是 range scan。“任何不屬於這兩種情況的東西(包括連接),都需要很大的調整。在給定的設計中,如果不重寫查詢,完全的外層連接根本不可能執行(MySQL 仍然不支持它們,但至少現在它沒有受到舊的 we-can-do-left-deep-plans-only 設計的阻礙)。甚至不讓我着手使用'slice'系統,這也許是我在任何現實世界的軟件中見過的最瘋狂的設計。”

不過他也表示,還是爲自己一直在做的工作感到由衷的自豪;MySQL 8.0 是比 5.7 更好的產品,而且它還將繼續改進。但話鋒一轉,Gunderson 又指出,能做的也只有這麼多了。“團隊其他人和我一直都在致力於使 MySQL 優化器朝着相當標準的 21 世紀初期設計的方向發展,並有一些不錯的調整,但這也是它的終點。”

Gunderson 稱,無論 Oracle 公司內部說的有多天花亂墜,他依舊不認爲 MySQL 會成爲一個有競爭力的產品;並建議那些正在使用 MySQL 人,是時候該看看外面的世界了。

在離開 Oracle 後,Gunderson 已經加入了 Google Chrome 團隊。

話說,你覺得哪個數據庫更好用呢?評論區等你~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章