塗抹MySQL--第1章 開源運動與開源軟體MySQL - 1.2MySQL的悄然而至(2)

junsansi發表於2014-06-24

2.3 快速發展,大踏步向前

MySQL最初的版本非常簡陋,只是實現了在表上進行增刪改查的操作,沒有其它更多的功能,不過隨著版本演進,功能也在不斷增強。MySQL3.22應該是一個標誌性的版本,提供了基本的SQL支援,優化器也有模有樣(這也代表著效能已經達到一定水準),原生提供大量API,這樣主流的開發語言都可以基於它來開發MySQL客戶端,為該產品能夠流行打下必要的基礎。儘管此時的MySQL看起來仍然像個玩具(主要是功能仍然偏弱),不過功能基本可用,而且又是免費對外發布,因此還是受到不少人的關注和試用,甚至有些人開始嘗試在自己的系統中應用它。

1999年,MySQL公司與Sleepycat公司開展合作,對方為MySQL提供了支援事務的Berkeley DB儲存引擎,這個儲存引擎也被簡稱為BDB。有了BDB後,MySQL資料庫也可以支援事務的處理。儘管BDB也存在一些問題,呃,好吧,不是一些,而是很嚴重的問題(後來也一直沒能解決掉,因此MySQL 5.1版本後就不再支援BDB),不過,開發人員們付出的努力並沒有白費。為了能夠支援BDBMySQL在原始碼中改進設計,使得它能夠支援任何型別的儲存引擎,這一點正是MySQL資料庫獨特的外掛式儲存引擎設計。關於外掛式儲存引擎的架構優越之處,我們會在後面介紹儲存引擎的章節中詳細闡述,這裡不多做介紹。

2000年,ISAM引擎華麗變身為MyISAM儲存引擎。MyISAM引擎一度是MySQL資料庫中最為流行的儲存引擎,即使到現有,MySQL資料庫中仍有大量系統物件選擇MyISAM儲存引擎來儲存表物件。同年,MySQL還開放了自己的原始碼,並且基於GPL許可協議,成為開源軟體大家庭中的一份子,從此,它不是一個人在戰鬥,它不是一個人。

不過MySQL資料庫並不是簡單地選擇GPL,而是採用了雙許可證的方式,我覺得這種策略也體現著MySQL公司管理團隊的智慧。早在MySQL最初發布正式版本時,選擇的許可策略就顯得與眾不同,在Stallman自由軟體大旗高舉之時,MySQL也順應著潮流,允許使用者免費使用MySQL資料庫,但是如果使用者(通常都是商業公司)要基於(或繫結)MySQL釋出自己的產品,則必須支付費用。這種設定說得更直白些,就是普通使用者隨便用,但要基於MySQL從事商用行為,就得留下買路錢——先向MySQL支付費用,以獲取許可。這種商業策略在早期也為MySQL帶來了一定的收入,同時MySQL公司(包括其前身Tcx)對外提供商業支援,也能夠獲取一些收入,這為它的可持續發展打下良好的基礎。

MySQL公司的雙許可證方式,仍然是基於原有的策略,也就是對普通使用者免費(選擇GPL許可協議),對商業使用者收費(GPL許可)的方式,從本質上來講就是對外賣軟體的許可。普通使用者的免費許可,可以使MySQL資料庫軟體傳播成本儘可能低,商業許可又使得其能夠獲得一定收入,從而更好地支撐企業發展。

2001年,MySQL公司找來具備市場和銷售背景的Marten MickoCEO,時年已經做到200萬的安裝量。在2001年,MySQL資料庫中的另外一個明星級儲存引擎——InnoDB也閃亮登場,這回是InnoDB引擎的開發者Heikki Tuuri主動找上門來,希望能夠被整合到MySQL發行版中。InnoDB支援事務,支援行級鎖定,對於OLTP及讀寫高併發場景使用者們來說,可謂及時雨。由於之前已有整合BDB的經驗,支援InnoDB並沒有技術上的難題。整合了InnoDB4.0 alpha版本於20009月份釋出,至此MySQL資料庫中的MyISAMInnoDB兩大主力引擎均已就位,而他們的東風(網際網路大潮)早就鼓盪起來了,萬事俱備啊,看起來不發達不行了

2002年,MySQL資料庫達到300萬的安裝量,收入超過600萬美刀,有超過1000名付費客戶;2003年,達到400萬的安裝量,每天下載量超過3萬次,年收入達1200萬美刀。整合了InnoDB引擎的MySQL 4.0穩定版本,也於該年釋出,實際上版本號的變更與InnoDB儲存引擎沒啥直接關係,想必彼時他們還沒有意識到,InnoDB儲存引擎對他們未來發展的重要性。不過,從MySQL資料庫軟體已有版本回顧,還沒有因為增加某項儲存引擎,而單獨升級過版本號,所以呢,InnoDB也不算受到輕慢。

MySQL軟體的版本號定義看起來較為隨意,完全無規則可循。總的來看,4.0版本著重增強功能,比如增加查詢快取的特性,以便加速相同查詢的執行效率;增強複製特性,Slave端分為兩個獨立的執行緒處理複製任務;客戶端與服務端通訊能夠支援SSL,以提升安全性等等方面。

2004年,考慮到收入的主要來源都是OEM雙重許可模式,MySQL公司決定深入耕耘企業市場,並且將焦點放在從終端使用者中不斷獲取收入,而不是像原來那樣,僅通過合作伙伴收取一次授權費用就完了。也是在當年,其收入突破了2000萬美元大關;

當然光模式變更不行,產品必須得給力,俗話說不怕神一樣的對手,就怕豬一般的隊友。MySQL公司團隊中是否有豬一樣的隊友,我不知道,但是神一樣的對手已經盯上它了。

2005年,MySQL5.0版本釋出,這是個非常重要的版本,提供了眾多的特性,比如說儲存過程、觸發器、檢視、遊標、分散式事務等等,它也越來越不像是個小型資料庫,而是真正能夠適用於企業使用者的需求,具備較為全面的技術指標。當年從超過3000個客戶中獲得3400萬美金的收入。

一切看起來彷彿都很美好,不過,那個神一樣的對手不僅僅是盯上他,而且已經動上手了。2005年,Oracle收購了Innobase公司。不知道Innobase公司是哪路神仙?好吧,這家公司的創始人是Heikki Tuuri,您應該對這個名字有些眼熟,因為前面我們們提到過,他正是InnoDB引擎的開發者,而Innobase公司擁有InnoDB引擎的版權。Heikki Tuuri一直在為自己的公司找買家,並且與MySQL公司有過多次接觸,只是誰也沒想到,Oracle搶在MySQL之前截了胡,坑爹呀。

提到MySQL資料庫,一個不可迴避的話題是ORACLE,不僅僅是因為ORACLE資料庫軟體是RDBMS領域的霸主,佔市場主導地位,更重要的因素是它與MySQL之間的關係。說起來,後面發生的一系列變故,可能就在2005年開始埋下了伏筆。

2006年,MySQL公司的CEO,就是前文中提到過的Marten Mickos,對外聲稱Oracle與其有過接觸,嘗試要購買MySQL公司,對此業內並不算太吃驚,畢竟一年前Oracle收購Innobase時,業內就有過諸多猜測。對此Oracle公司的CEO,超有性格的Larry Ellison(可參考本人另一部著作——《塗抹Oracle》中相關章節的內容)評論說,我們是跟他們提到過收購的意向,不過,大家回想一下,我們幾乎對誰都這麼說,但是我們是真有興趣嗎?孩子,醒醒吧,年收入才三四千萬那麼點兒個小公司,我們可是收入超過150億美元的大企業。

有趣的是,Oracle轉眼又收購了Sleepycat公司,該公司與Innobase公司類似,提供MySQL資料庫下支援事務的BDB儲存引擎。所以,不管Oracle是不是真的要收購MySQL,這些收購行為本身就足以表明,Oracle感受到了MySQL資料庫對其地位和市場份額的威脅,所進行的這些收購都是在佈局,Larry Ellison在下一盤大棋,你懂的。

2006MySQL的整體發展趨勢依然迅猛,安裝量達800萬,收入達到5000萬,在全球25個國家擁有320名員工。並且,CEO也制訂了收入目標和上市計劃,預計在2008年達到1億的收入,並於當年IPO

MySQL自打誕生就不是以功能全面見長,而是勝在靈活、輕量(好吧,還有免費)。若比功能,主流的大型商業資料庫管理系統,輕輕鬆鬆能甩它幾個街區,因此後面就不再著重強調MySQL新版本中的特性。換個角度來看,功能特性儘管也非常重要,但與企業和產品的發展比起來就差遠了,MySQL即將進入到企業發展的關鍵時期。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-1192618/,如需轉載,請註明出處,否則將追究法律責任。

相關文章