你知道MySQL如何趕上PostgreSQL?
Percona最近發(fā)表了一篇文章,替MySQL出謀劃策,期待趕上PostgreSQL,不過(guò)Percona本身就存在利益相關(guān),所以大家批判性理解,我根據(jù)自己的理解做了點(diǎn)改動(dòng)。
圖片
1.所有權(quán)和治理
MySQL相比PostgreSQL不是開(kāi)源社區(qū)驅(qū)動(dòng)的,早期MySQL還是很重視社區(qū)并獲得了信任,所以大公司也并不并不將其視為威脅。但到了Oracle收購(gòu)MySQL后,情況就變化了,大公司特別是云服務(wù)提供商,將Oracle視為競(jìng)爭(zhēng)對(duì)手,他們不可能給MySQL貢獻(xiàn)代碼。
而PostgreSQL由社區(qū)運(yùn)營(yíng),PostgreSQL基金會(huì)是一個(gè)非營(yíng)利組織,所有公司在PostgreSQL生態(tài)系統(tǒng)中都是平等的,貢獻(xiàn)給PostgreSQL不會(huì)為競(jìng)爭(zhēng)對(duì)手創(chuàng)造價(jià)值,社區(qū)在PostgreSQL項(xiàng)目方向上有更大的影響力,數(shù)百家小公司使PostgreSQL在全球范圍內(nèi)無(wú)處不在。
針對(duì)MySQL來(lái)說(shuō),社區(qū)能做到不多,因?yàn)闆Q策來(lái)源于Oracle,他們更關(guān)注利潤(rùn),而不是為了擴(kuò)大市場(chǎng)規(guī)模。
2.License
MySQL是通過(guò)GPLv2和商業(yè)許可證進(jìn)行雙重許可的,用戶可以選擇在GPLv2下使用MySQL,這要求所有基于MySQL的修改和衍生作品也必須開(kāi)放源代碼。不過(guò),用戶也可以購(gòu)買Oracle提供的商業(yè)許可證,這樣就可以在不公開(kāi)源代碼的情況下進(jìn)行商業(yè)化。
以AWS Aurora來(lái)說(shuō),作為一個(gè)兼容MySQL的成功衍生版本,AWS可以基于MySQL的源代碼創(chuàng)建自己的版本并進(jìn)行商業(yè)化,但這通常是在云服務(wù)的形式下進(jìn)行的,并不需要開(kāi)放源代碼給客戶,而是將其作為服務(wù)提供。
而PostgreSQL則通過(guò)非常寬松的PostgreSQL許可證進(jìn)行許可,所有人可以輕松地創(chuàng)建商業(yè)許可的PostgreSQL衍生版本或?qū)⑵淝度氲缴虡I(yè)許可的項(xiàng)目中,對(duì)于推廣PostgreSQL非常有益。
對(duì)于Oracle肯定還會(huì)堅(jiān)持雙重許可,雖然市面上也有“Cloud Only”和“Open Core”這樣的商業(yè)模式取得了成功,但對(duì)于Oracle來(lái)說(shuō),雙重許可的模式更為直接。
3.社區(qū)
社區(qū)分三方面,比如對(duì)于我來(lái)說(shuō),就是用戶社區(qū)的一份子,專注于使用,這方面MySQL的基數(shù)還是很不錯(cuò)的,但越來(lái)越多的新應(yīng)用選擇使用PostgreSQL。
貢獻(xiàn)者社區(qū),這方面PostgreSQL的貢獻(xiàn)者社區(qū)更加強(qiáng)大,因?yàn)樗泻芏嘟M織參與,而不是僅僅依靠一家公司,他們會(huì)定期舉辦各類的活動(dòng)進(jìn)行貢獻(xiàn),另外PostgreSQL的擴(kuò)展屬性也更容易方便開(kāi)發(fā)者對(duì)其進(jìn)行貢獻(xiàn)。
供應(yīng)商社區(qū),這方面MySQL就比較薄弱了,因?yàn)閹椭茝VMySQL可能最終只是在為Oracle創(chuàng)造價(jià)值。
對(duì)于MySQL來(lái)說(shuō),Oracle可以主動(dòng)與潛在的貢獻(xiàn)者交流,舉辦一些活動(dòng),讓外部貢獻(xiàn)者參與,分享他們的計(jì)劃,并支持與MySQL社區(qū)發(fā)展方向一致的貢獻(xiàn)工作。
4.架構(gòu)
PostgreSQL被設(shè)計(jì)為可擴(kuò)展的,擁有大量強(qiáng)大的擴(kuò)展,而MySQL的擴(kuò)展能力則相對(duì)有限,這種可擴(kuò)展性使得PostgreSQL的創(chuàng)新變得更加容易。
但對(duì)于MySQL來(lái)說(shuō),選擇了不一樣的模式,可擴(kuò)展可能并不是他的有些選項(xiàng)。
5.開(kāi)源產(chǎn)品的動(dòng)力
選擇數(shù)據(jù)庫(kù)是一項(xiàng)長(zhǎng)期的賭注,因?yàn)楦鼡Q數(shù)據(jù)庫(kù)并不容易,選擇數(shù)據(jù)庫(kù)的時(shí)候比如考慮未來(lái),思考隨著時(shí)間的推移,你選擇的數(shù)據(jù)庫(kù)會(huì)滿足未來(lái)的需求嗎。
對(duì)于Oracle來(lái)說(shuō),已經(jīng)將許多開(kāi)發(fā)重點(diǎn)轉(zhuǎn)向?qū)S泻驮茖俚腗ySQL版本,不會(huì)太考慮MySQL社區(qū),這就是他的模式。
那社區(qū)能做什么呢?
這里重點(diǎn)提到了,Percona Server for MySQL,他是一個(gè)完全兼容MySQL的開(kāi)源替代方案來(lái)替代MySQL,直白點(diǎn)就是fork版本,核心是兼容性,為了避免與上游(Oracle)的合并成本過(guò)高。
那MariaDB怎么樣呢?他走的路是完全和Oracle MySQL分割,倡導(dǎo)創(chuàng)新,每個(gè)新版本和MySQL的偏離程度也越來(lái)越大。
MariaDB則做出了不同的權(quán)衡;無(wú)限制的創(chuàng)新使其與MySQL的兼容性降低,每個(gè)新版本的偏離程度也越來(lái)越大。
6.MariaDB
MariaDB開(kāi)始也是由MariaDB基金會(huì)管理,但他是有缺陷的,尤其是在知識(shí)產(chǎn)權(quán)(IP)方面,特別是商標(biāo)方面,它沒(méi)有擁有所有的知識(shí)產(chǎn)權(quán),還是由一家公司(MariaDB公司)控制,存在存在商標(biāo)壟斷的問(wèn)題,和PostgreSQL的社區(qū)模式完全不一樣,并非“人人平等”。
目前MariaDB被K1公司收購(gòu),這為MariaDB的治理和商標(biāo)所有權(quán)的變更提供了機(jī)會(huì),使其更加接近PostgreSQL的模式,但估計(jì)不會(huì)成為現(xiàn)實(shí)。
雖然MariaDB基金會(huì)可以給MariaDB進(jìn)行更名獲取完全的控制,但失去了MariaDB的品牌,就等于失去了知名度。
既然說(shuō)了那么多,percona為什么不走M(jìn)ariaDB早期設(shè)想的那條路呢?我個(gè)人覺(jué)得發(fā)不了大財(cái),那就發(fā)點(diǎn)小財(cái)?
參考:https://www.percona.com/blog/how-can-mysql-catch-up-with-postgresqls-momentum/