再見,MySQL !
芬蘭程序員Monty有三個孩子,分別叫做My, Maria, Max。
這三個孩子非常幸運,因為他們的父親把他們的名字永遠地“刻”在了三個數(shù)據(jù)庫產(chǎn)品之上:
- MySQL
- MaxDB
- MariaDB
這位父親就是MySQL的主要作者Michael Widenius,大家經(jīng)常叫他Monty。

[[355216]]
今天我們來聊一聊為什么是Monty創(chuàng)建了MySQL,MySQL又是怎么發(fā)展成為世界上最流行的開源數(shù)據(jù)庫的。
01編程達人
Monty1962年出生于芬蘭的赫爾辛基, 1978年,16歲的他發(fā)現(xiàn)了一件高科技產(chǎn)品:ABC80計算機。
[[355216]]
這個計算機的CPU只有4M Hz, 內(nèi)存只有8K ,但是對于只玩過可編程計算器的Monty來說, 這才是真正的計算機。
于是Monty 找了一個“勤工儉學”的活兒:在赫爾辛基的街道上鋪瀝青, 雖然賺來了一筆錢,但還是不夠,Monty老爸又出了一半的錢,這才成功地把ABC80抱回了家。
從此,Monty 整天和這臺計算機“廝混”在一起。
Monty是個不折不扣的編程天才,對別人來說非常難的東西,他都能輕松搞定,編程對于他來說,就像讀一本有趣的小說,或者玩一個游戲,不知不覺幾個小時就過去了。
由于ABC80上沒有多少軟件,Monty小試牛刀, 用匯編語言把把游戲機上的一些熱門游戲在這個機器上實現(xiàn)了!
[[355216]]

(太空入侵者)
[[355216]]

(Pacman)
可見游戲有著多么強大的驅(qū)動力!
兩年以后,Monty又把ABC80升級成了 ABC800,此時的Monty已經(jīng)不滿足當一個游戲Boy了,開始在上面開發(fā)真正的軟件了,比如:
字處理器
硬盤控制器
磁帶備份
......
在一次演講中,Monty說到:那真是美好的舊時光, 你想使用計算機的話,得從底層學習計算機硬件和軟件的方方面面,對于現(xiàn)代的程序員來說,沒有這樣的機會了。
02“桃園三結(jié)義”
由于ABC 電腦是瑞典制造的,很多配件只有瑞典才有,Monty經(jīng)常乘船去瑞典買配件,有一次去買內(nèi)存的時候,Monty結(jié)識了Allan Larsson。
Allan開著一個電腦商店,有一家叫做TcX的咨詢公司,Monty逐漸和他變得熟絡(luò)起來。
得知Monty是個編程天才以后,Allan給了他一個數(shù)據(jù)庫程序,請他基于這個數(shù)據(jù)庫為客戶開發(fā)一個軟件出來。
Monty把數(shù)據(jù)庫程序拿來一看就發(fā)現(xiàn),這程序?qū)懙锰珷€,難以理解,難以維護, 既然如此,還不如重寫一個。
大牛就是這么任性。
Monty寫的數(shù)據(jù)庫程序叫做Unireg,最初用Basic在ABC800 編寫,到了1983年,Monty又用C語言重寫了一遍, 這樣就可以運行在一個有著2M內(nèi)存的強大機器上。

這就是Unireg的界面,純文本,有點像打印機的格式。 雖然有點丑,但可以輕松地創(chuàng)建,更新數(shù)據(jù)庫的數(shù)據(jù),并且產(chǎn)生報表。
Monty和Allan都不會想到,這個看起來很簡陋的數(shù)據(jù)庫將來會一飛沖天,變成軟件世界的中流砥柱:MySQL!
有了數(shù)據(jù)庫,Allan拉來了更多的活兒,Monty作為TcX唯一的開發(fā)人員,不僅開發(fā)客戶的應(yīng)用程序,還花費了大量的時間來完善Unireg。
1985年, Monty和Allan干脆合伙開了一個叫TCX DataKonsult AB ,專注數(shù)據(jù)倉庫領(lǐng)域, Monty把Unireg移植到了更強大的Sun工作站上,以便能處理更大規(guī)模的數(shù)據(jù)。
[[355216]]
有多大規(guī)模呢?大概是每月百萬行的數(shù)據(jù)。
可見這個時候的Unireg數(shù)據(jù)庫,已經(jīng)相當不錯, 能處理大數(shù)據(jù)了!
在此期間, Monty又認識了David Axmark, 兩人相見恨晚,經(jīng)常在一起討論技術(shù)問題,打電話到深夜。
[[355216]]
David是一個自由軟件的鐵桿粉絲,他將來會對MySQL 的開源模型,盈利模式產(chǎn)生重大的影響。
Monty , David, Allan這三個人如同“桃園三結(jié)義”的兄弟,從此以后,他們將聯(lián)手開啟一段新歷史。
03MySQL問世
不知道Monty和Allan 用Unireg賺了多少錢,TcX這個小小的公司應(yīng)該活得比較滋潤。
如果就這么發(fā)展下去,估計MySQL就不會誕生了。
90年代中后期, 蓬勃發(fā)展的互聯(lián)網(wǎng)將給Monty他們帶來一個前所未有的挑戰(zhàn),當然也帶來了前所未有的機遇。
1994年,客戶希望TcX開始基于Unireg開發(fā)Web的應(yīng)用,不幸的是,Unireg這個桌面軟件的設(shè)計缺點暴漏出來了:不支持SQL,沒法和Web頁面有效集成。
要么固守桌面軟件,慢慢落后于時代,要么主動擁抱Web,Monty和TcX走到了一個十字路口。
這時候Monty 發(fā)現(xiàn)了開源的miniSQL (簡稱mSQL), Monty研究了一番后發(fā)現(xiàn),mSQL最要命的問題是不支持索引,性能很差。
Monty聯(lián)系mSQL的作者,問他能不能修改mSQL來使用Unireg的索引,mSQL的作者忙著開發(fā)mSQL 2.0,已經(jīng)設(shè)計好了索引方案,就拒絕了。
自己動手,豐衣足食,Monty決心實現(xiàn)自己的數(shù)據(jù)庫。
一年以后, 1995年1月,支持SQL接口,索引,有著C/S架構(gòu)的MySQL 1.0 問世了。
狂熱的開源軟件愛好者David立刻找到Monty和Allan,給他倆施壓,希望MySQL可以開源。
可是開源以后,大家都能用了,怎么賺錢呢?
David想了一個絕妙的注意:雙重許可
客戶可以以開源的方式使用MySQL,不需要付費。
但是,如果客戶在自己的產(chǎn)品中使用了MySQL,還想通過閉源的方式來銷售自己的產(chǎn)品,那對不起,需要付費購買商業(yè)許可。
這樣,既能擴大軟件的使用用戶,收入還不至于顆粒無收。
0415分鐘 和 3萬封郵件
MySQL是幸運的,它踏上了互聯(lián)網(wǎng)的風口:Web網(wǎng)站如雨后春筍般出現(xiàn),每個網(wǎng)站都需要一個免費的數(shù)據(jù)庫,MySQL正好填補了這個空白。
當時建站的主要語言是PHP,Perl , 這些程序員也對MySQL做了大量宣傳:簡單、易用、高性能。
Monty和David設(shè)定了一個目標:讓用戶在下載完MySQL以后,15分鐘內(nèi)就能運行起來, 在現(xiàn)在RPM, DEB等安裝包大行其道的時代,15分鐘聽起來非常漫長, 但是在1996年,通常需要從源代碼安裝,一點點小問題,就會花費數(shù)小時。
為了這15分鐘,Monty他們付出了辛苦的努力,需要模擬用戶在8~10個操作系統(tǒng)上編譯,安裝MySQL的不同版本。
Monty 對用戶非常負責, 他在MySQL問世前5年的時間里,回復(fù)了30000多封郵件,來解決大家的疑問。
David 也沒有閑著,馬不停蹄地參加各種會議,到處宣傳MySQL, 他在飛機上度過的時間超越了在家的時間。
免費的MySQL逐漸成為建站的第一選擇。加上Apache和Linux, 形成了著名的LAMP。
055000萬美元
到了1999年,MySQL已經(jīng)被一些人注意到了, 并且開出了5000萬美元的高價想把MySQL買下。
如果是目光短淺的我,十有八九就賣了,多么誘人的報價,賣了以后就財務(wù)自由了!
但是Monty他們有著更大的愿景:做點兒事情,改變世界。
他們不想就此失去對公司的控制,于是他們拒絕了這次收購。
隨著時間推移,MySQL越長越大, 公司從3個人發(fā)展到了15個人, 客戶越來越多,需要的功能也水漲船高。MySQL公司需要更多人手去做技術(shù)支持、編寫文檔、銷售。
市場上也出現(xiàn)了像PostgresSQL這樣的競爭對手, 如果再不引入投資,靠之前的收入緩慢增長,MySQL遲早會被飛速發(fā)展的時代干掉。
2001 年 M?rten Mickos 被聘為MySQL CEO, 專門和投資者談,最后從風險投資那里獲得了400萬歐元的A輪融資, 僅僅出讓了10%的股權(quán), 控制權(quán)依然在Monty他們手中。
MySQL從此進入了發(fā)展的快車道,到2003年,僅兩年的時間,MySQL的安裝數(shù)就翻了一番,達到400萬, 成為了全世界最受歡迎的開源數(shù)據(jù)庫。
這一年,MySQL又獲得了1950萬美元的B輪融資。
06和Oracle的暗戰(zhàn)
Oracle是數(shù)據(jù)庫領(lǐng)域的絕對老大, 統(tǒng)治著企業(yè)級數(shù)據(jù)庫市場, 但是在Web領(lǐng)域卻干不過免費、開源的MySQL。
Google, Facebook, Snapchat, Quora, Dropbox ,Youtube , Twitter 等IT巨頭都不使用Oracle,他們不約而同地選擇了MySQL, 因為不用給Oracle交巨額的License費用,還可以修改源代碼適合自己的場景。
更要命的是, MySQL正在從Web領(lǐng)域殺下企業(yè)級市場,很多重量級客戶從Oracle 轉(zhuǎn)向免費的MySQL,這給Oracle帶來了巨大的威脅。
2006年, Oracle 試圖收購MySQL,但是沒有成功。
Larry Ellison狂妄地說:
它(MySQL)只是一家小小的公司,年收入也就三四千萬吧, 而我們Oracle的收入是150億!
我們只收購那些有商業(yè)價值的公司,MySQL并不在我們收購的列表中。
話雖這么說, Oracle 卻在不斷地挖MySQL的墻角。
2005年, Oracle收購了一個叫做innobase的芬蘭公司,正是這家公司給MySQL提供了支持事務(wù)處理的InnoDB 引擎。
過了一年,Oracle又收購了Sleepycat,這家公司給MySQL提供了Berkeley DB事務(wù)引擎。
07并購
2008年, 年收入達到7500萬美元的MySQL面臨一個抉擇:究竟是上市呢?還是賣個好價錢?
M?rten Mickos, Monty, David等人經(jīng)過一番討論以后,他們選擇了Sun,這是因為:
1. Sun是一家技術(shù)導向的公司
2. Sun是開源運動的推動者,沒有把MySQL變成閉源軟件的風險。
2008年1月,MySQL以10億美元賣給了Sun,Monty也憑借這筆收入成為這一年芬蘭的10大富豪之一。
可是人算不如天算, 讓人苦笑不得的是,僅僅一年以后,Sun居然又被Oracle給收購了!
MySQL最終還是沒有逃脫Oracle的手掌心。
MySQL的前景一下子黯淡下來,Monty說道:
“很多核心的MySQL開發(fā)者,包括我自己,都不相信Oracle能善待MySQL,我們要確保MySQL的代碼完全開源,永遠開源。”
2009年,作為對Oracle收購Sun的回應(yīng), Monty立刻創(chuàng)建了一個MySQL的分支:MariaDB, 它和MySQL兼容,并且完全開源,一大批核心開發(fā)人員追隨Monty,離開MySQL,加入MariaDB。

[[355216]]
2009年Monty已經(jīng)47歲了, 和MySQL說了再見,他踏上了新的征程。
2020年,Monty已經(jīng)58歲了,依然在一線奮戰(zhàn)。
傳奇將會繼續(xù)......
(完)
參考資料:
https://en.wikipedia.org/wiki/Michael_Widenius
https://mariadb.org/wp-content/uploads/2019/11/MySQL-MariaDB-story.pdf
https://www.youtube.com/watch?v=Zh56R49y1PQ
https://www.artfulsoftware.com/mysqlbook/sampler/mysqled1ch02.pdf
https://www.cs.ait.ac.th/laboratory/database/manual/manual_Unireg.shtml
https://dri.es/the-history-of-mysql-ab
http://www.odbms.org/blog/2011/09/mariadb-the-new-mysql-interview-with-michael-monty-widenius/
http://www.odbms.org/blog/2011/09/mariadb-the-new-mysql-interview-with-michael-monty-widenius/
如需轉(zhuǎn)載,請通過作者微信公眾號coderising獲取授權(quán)。