
芬蘭程序員Monty有三個(gè)孩子,分別叫做My, Maria, Max。
這三個(gè)孩子非常幸運(yùn),因?yàn)樗麄兊母赣H把他們的名字永遠(yuǎn)地“刻”在了三個(gè)數(shù)據(jù)庫(kù)產(chǎn)品之上:
MySQL
MaxDB
MariaDB
這位父親就是MySQL的主要作者M(jìn)ichael Widenius,大家經(jīng)常叫他Monty。
今天我們來(lái)聊一聊為什么是Monty創(chuàng)建了MySQL,MySQL又是怎么發(fā)展成為世界上最流行的開(kāi)源數(shù)據(jù)庫(kù)的。
01.編程達(dá)人
Monty1962年出生于芬蘭的赫爾辛基, 1978年,16歲的他發(fā)現(xiàn)了一件高科技產(chǎn)品:ABC80計(jì)算機(jī)。
這個(gè)計(jì)算機(jī)的CPU只有4M Hz, 內(nèi)存只有8K ,但是對(duì)于只玩過(guò)可編程計(jì)算器的Monty來(lái)說(shuō), 這才是真正的計(jì)算機(jī)。
于是Monty 找了一個(gè)“勤工儉學(xué)”的活兒:在赫爾辛基的街道上鋪瀝青, 雖然賺來(lái)了一筆錢,但還是不夠,Monty老爸又出了一半的錢,這才成功地把ABC80抱回了家。
從此,Monty 整天和這臺(tái)計(jì)算機(jī)“廝混”在一起。
Monty是個(gè)不折不扣的編程天才,對(duì)別人來(lái)說(shuō)非常難的東西,他都能輕松搞定,編程對(duì)于他來(lái)說(shuō),就像讀一本有趣的小說(shuō),或者玩一個(gè)游戲,不知不覺(jué)幾個(gè)小時(shí)就過(guò)去了。
由于ABC80上沒(méi)有多少軟件,Monty小試牛刀, 用匯編語(yǔ)言把把游戲機(jī)上的一些熱門游戲在這個(gè)機(jī)器上實(shí)現(xiàn)了!
可見(jiàn)游戲有著多么強(qiáng)大的驅(qū)動(dòng)力!
兩年以后,Monty又把ABC80升級(jí)成了 ABC800,此時(shí)的Monty已經(jīng)不滿足當(dāng)一個(gè)游戲Boy了,開(kāi)始在上面開(kāi)發(fā)真正的軟件了,比如:
字處理器
硬盤控制器
磁帶備份
......
在一次演講中,Monty說(shuō)到:那真是美好的舊時(shí)光, 你想使用計(jì)算機(jī)的話,得從底層學(xué)習(xí)計(jì)算機(jī)硬件和軟件的方方面面,對(duì)于現(xiàn)代的程序員來(lái)說(shuō),沒(méi)有這樣的機(jī)會(huì)了。
02.“桃園三結(jié)義”
由于ABC 電腦是瑞典制造的,很多配件只有瑞典才有,Monty經(jīng)常乘船去瑞典買配件,有一次去買內(nèi)存的時(shí)候,Monty結(jié)識(shí)了Allan Larsson。
Allan開(kāi)著一個(gè)電腦商店,有一家叫做TcX的咨詢公司,Monty逐漸和他變得熟絡(luò)起來(lái)。
得知Monty是個(gè)編程天才以后,Allan給了他一個(gè)數(shù)據(jù)庫(kù)程序,請(qǐng)他基于這個(gè)數(shù)據(jù)庫(kù)為客戶開(kāi)發(fā)一個(gè)軟件出來(lái)。
Monty把數(shù)據(jù)庫(kù)程序拿來(lái)一看就發(fā)現(xiàn),這程序?qū)懙锰珷€,難以理解,難以維護(hù), 既然如此,還不如重寫一個(gè)。
大牛就是這么任性。
Monty寫的數(shù)據(jù)庫(kù)程序叫做Unireg,最初用Basic在ABC800 編寫,到了1983年,Monty又用C語(yǔ)言重寫了一遍, 這樣就可以運(yùn)行在一個(gè)有著2M內(nèi)存的強(qiáng)大機(jī)器上。
這就是Unireg的界面,純文本,有點(diǎn)像打印機(jī)的格式。 雖然有點(diǎn)丑,但可以輕松地創(chuàng)建,更新數(shù)據(jù)庫(kù)的數(shù)據(jù),并且產(chǎn)生報(bào)表。
Monty和Allan都不會(huì)想到,這個(gè)看起來(lái)很簡(jiǎn)陋的數(shù)據(jù)庫(kù)將來(lái)會(huì)一飛沖天,變成軟件世界的中流砥柱:MySQL!
有了數(shù)據(jù)庫(kù),Allan拉來(lái)了更多的活兒,Monty作為TcX唯一的開(kāi)發(fā)人員,不僅開(kāi)發(fā)客戶的應(yīng)用程序,還花費(fèi)了大量的時(shí)間來(lái)完善Unireg。
1985年, Monty和Allan干脆合伙開(kāi)了一個(gè)叫TCX DataKonsult AB ,專注數(shù)據(jù)倉(cāng)庫(kù)領(lǐng)域, Monty把Unireg移植到了更強(qiáng)大的Sun工作站上,以便能處理更大規(guī)模的數(shù)據(jù)。

有多大規(guī)模呢?大概是每月百萬(wàn)行的數(shù)據(jù)。
可見(jiàn)這個(gè)時(shí)候的Unireg數(shù)據(jù)庫(kù),已經(jīng)相當(dāng)不錯(cuò), 能處理大數(shù)據(jù)了!
在此期間, Monty又認(rèn)識(shí)了David Axmark, 兩人相見(jiàn)恨晚,經(jīng)常在一起討論技術(shù)問(wèn)題,打電話到深夜。

David是一個(gè)自由軟件的鐵桿粉絲,他將來(lái)會(huì)對(duì)MySQL 的開(kāi)源模型,盈利模式產(chǎn)生重大的影響。
Monty , David, Allan這三個(gè)人如同“桃園三結(jié)義”的兄弟,從此以后,他們將聯(lián)手開(kāi)啟一段新歷史。
03.MySQL問(wèn)世
不知道Monty和Allan 用Unireg賺了多少錢,TcX這個(gè)小小的公司應(yīng)該活得比較滋潤(rùn)。
如果就這么發(fā)展下去,估計(jì)MySQL就不會(huì)誕生了。
90年代中后期, 蓬勃發(fā)展的互聯(lián)網(wǎng)將給Monty他們帶來(lái)一個(gè)前所未有的挑戰(zhàn),當(dāng)然也帶來(lái)了前所未有的機(jī)遇。
1994年,客戶希望TcX開(kāi)始基于Unireg開(kāi)發(fā)Web的應(yīng)用,不幸的是,Unireg這個(gè)桌面軟件的設(shè)計(jì)缺點(diǎn)暴漏出來(lái)了:不支持SQL,沒(méi)法和Web頁(yè)面有效集成。
要么固守桌面軟件,慢慢落后于時(shí)代,要么主動(dòng)擁抱Web,Monty和TcX走到了一個(gè)十字路口。
這時(shí)候Monty 發(fā)現(xiàn)了開(kāi)源的miniSQL (簡(jiǎn)稱mSQL), Monty研究了一番后發(fā)現(xiàn),mSQL最要命的問(wèn)題是不支持索引,性能很差。
Monty聯(lián)系mSQL的作者,問(wèn)他能不能修改mSQL來(lái)使用Unireg的索引,mSQL的作者忙著開(kāi)發(fā)mSQL 2.0,已經(jīng)設(shè)計(jì)好了索引方案,就拒絕了。
自己動(dòng)手,豐衣足食,Monty決心實(shí)現(xiàn)自己的數(shù)據(jù)庫(kù)。
一年以后, 1995年1月,支持SQL接口,索引,有著C/S架構(gòu)的MySQL 1.0 問(wèn)世了。
狂熱的開(kāi)源軟件愛(ài)好者David立刻找到Monty和Allan,給他倆施壓,希望MySQL可以開(kāi)源。
可是開(kāi)源以后,大家都能用了,怎么賺錢呢?
David想了一個(gè)絕妙的注意:雙重許可
客戶可以以開(kāi)源的方式使用MySQL,不需要付費(fèi)。
但是,如果客戶在自己的產(chǎn)品中使用了MySQL,還想通過(guò)閉源的方式來(lái)銷售自己的產(chǎn)品,那對(duì)不起,需要付費(fèi)購(gòu)買商業(yè)許可。
這樣,既能擴(kuò)大軟件的使用用戶,收入還不至于顆粒無(wú)收。
04.15分鐘 和 3萬(wàn)封郵件
MySQL是幸運(yùn)的,它踏上了互聯(lián)網(wǎng)的風(fēng)口:Web網(wǎng)站如雨后春筍般出現(xiàn),每個(gè)網(wǎng)站都需要一個(gè)免費(fèi)的數(shù)據(jù)庫(kù),MySQL正好填補(bǔ)了這個(gè)空白。
當(dāng)時(shí)建站的主要語(yǔ)言是PHP,Perl , 這些程序員也對(duì)MySQL做了大量宣傳:簡(jiǎn)單、易用、高性能。
Monty和David設(shè)定了一個(gè)目標(biāo):讓用戶在下載完MySQL以后,15分鐘內(nèi)就能運(yùn)行起來(lái), 在現(xiàn)在RPM, DEB等安裝包大行其道的時(shí)代,15分鐘聽(tīng)起來(lái)非常漫長(zhǎng), 但是在1996年,通常需要從源代碼安裝,一點(diǎn)點(diǎn)小問(wèn)題,就會(huì)花費(fèi)數(shù)小時(shí)。
為了這15分鐘,Monty他們付出了辛苦的努力,需要模擬用戶在8~10個(gè)操作系統(tǒng)上編譯,安裝MySQL的不同版本。
Monty 對(duì)用戶非常負(fù)責(zé), 他在MySQL問(wèn)世前5年的時(shí)間里,回復(fù)了30000多封郵件,來(lái)解決大家的疑問(wèn)。
David 也沒(méi)有閑著,馬不停蹄地參加各種會(huì)議,到處宣傳MySQL, 他在飛機(jī)上度過(guò)的時(shí)間超越了在家的時(shí)間。
免費(fèi)的MySQL逐漸成為建站的第一選擇。加上Apache和Linux, 形成了著名的LAMP。
05.5000萬(wàn)美元
到了1999年,MySQL已經(jīng)被一些人注意到了, 并且開(kāi)出了5000萬(wàn)美元的高價(jià)想把MySQL買下。
如果是目光短淺的我,十有八九就賣了,多么誘人的報(bào)價(jià),賣了以后就財(cái)務(wù)自由了!
但是Monty他們有著更大的愿景:做點(diǎn)兒事情,改變世界。
他們不想就此失去對(duì)公司的控制,于是他們拒絕了這次收購(gòu)。
隨著時(shí)間推移,MySQL越長(zhǎng)越大, 公司從3個(gè)人發(fā)展到了15個(gè)人, 客戶越來(lái)越多,需要的功能也水漲船高。MySQL公司需要更多人手去做技術(shù)支持、編寫文檔、銷售。
市場(chǎng)上也出現(xiàn)了像PostgresSQL這樣的競(jìng)爭(zhēng)對(duì)手, 如果再不引入投資,靠之前的收入緩慢增長(zhǎng),MySQL遲早會(huì)被飛速發(fā)展的時(shí)代干掉。
2001 年 M?rten Mickos 被聘為MySQL CEO, 專門和投資者談,最后從風(fēng)險(xiǎn)投資那里獲得了400萬(wàn)歐元的A輪融資, 僅僅出讓了10%的股權(quán), 控制權(quán)依然在Monty他們手中。
MySQL從此進(jìn)入了發(fā)展的快車道,到2003年,僅兩年的時(shí)間,MySQL的安裝數(shù)就翻了一番,達(dá)到400萬(wàn), 成為了全世界最受歡迎的開(kāi)源數(shù)據(jù)庫(kù)。
這一年,MySQL又獲得了1950萬(wàn)美元的B輪融資。
06.和Oracle的暗戰(zhàn)
Oracle是數(shù)據(jù)庫(kù)領(lǐng)域的絕對(duì)老大, 統(tǒng)治著企業(yè)級(jí)數(shù)據(jù)庫(kù)市場(chǎng), 但是在Web領(lǐng)域卻干不過(guò)免費(fèi)、開(kāi)源的MySQL。
Google, Facebook, Snapchat, Quora, Dropbox ,Youtube , Twitter 等IT巨頭都不使用Oracle,他們不約而同地選擇了MySQL, 因?yàn)椴挥媒oOracle交巨額的License費(fèi)用,還可以修改源代碼適合自己的場(chǎng)景。
更要命的是, MySQL正在從Web領(lǐng)域殺下企業(yè)級(jí)市場(chǎng),很多重量級(jí)客戶從Oracle 轉(zhuǎn)向免費(fèi)的MySQL,這給Oracle帶來(lái)了巨大的威脅。
2006年, Oracle 試圖收購(gòu)MySQL,但是沒(méi)有成功。

Larry Ellison狂妄地說(shuō):
它(MySQL)只是一家小小的公司,年收入也就三四千萬(wàn)吧, 而我們Oracle的收入是150億!
我們只收購(gòu)那些有商業(yè)價(jià)值的公司,MySQL并不在我們收購(gòu)的列表中。
話雖這么說(shuō), Oracle 卻在不斷地挖MySQL的墻角。
2005年, Oracle收購(gòu)了一個(gè)叫做innobase的芬蘭公司,正是這家公司給MySQL提供了支持事務(wù)處理的InnoDB 引擎。
過(guò)了一年,Oracle又收購(gòu)了Sleepycat,這家公司給MySQL提供了Berkeley DB事務(wù)引擎。
07.并購(gòu)
2008年, 年收入達(dá)到7500萬(wàn)美元的MySQL面臨一個(gè)抉擇:究竟是上市呢?還是賣個(gè)好價(jià)錢?
M?rten Mickos, Monty, David等人經(jīng)過(guò)一番討論以后,他們選擇了Sun,這是因?yàn)椋?/p>
1. Sun是一家技術(shù)導(dǎo)向的公司
2. Sun是開(kāi)源運(yùn)動(dòng)的推動(dòng)者,沒(méi)有把MySQL變成閉源軟件的風(fēng)險(xiǎn)。
2008年1月,MySQL以10億美元賣給了Sun,Monty也憑借這筆收入成為這一年芬蘭的10大富豪之一。
可是人算不如天算, 讓人苦笑不得的是,僅僅一年以后,Sun居然又被Oracle給收購(gòu)了!
MySQL最終還是沒(méi)有逃脫Oracle的手掌心。
MySQL的前景一下子黯淡下來(lái),Monty說(shuō)道:
“很多核心的MySQL開(kāi)發(fā)者,包括我自己,都不相信Oracle能善待MySQL,我們要確保MySQL的代碼完全開(kāi)源,永遠(yuǎn)開(kāi)源?!?/p>
2009年,作為對(duì)Oracle收購(gòu)Sun的回應(yīng), Monty立刻創(chuàng)建了一個(gè)MySQL的分支:MariaDB, 它和MySQL兼容,并且完全開(kāi)源,一大批核心開(kāi)發(fā)人員追隨Monty,離開(kāi)MySQL,加入MariaDB。
2009年Monty已經(jīng)47歲了, 和MySQL說(shuō)了再見(jiàn),他踏上了新的征程。
2020年,Monty已經(jīng)58歲了,依然在一線奮戰(zhàn)。
傳奇將會(huì)繼續(xù)......
