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

junsansi發表於2014-06-24

開源軟體運動轟轟烈烈發展了二十多年,成果斐然。如今在軟體行業,開放原始碼的軟體技術已經是國際軟體行業的主旋律,即使像微軟、ORACLE這類傳統軟體巨頭,也不得不從原先強硬的反對陣營中,艱難、痛苦、糾結地悄然向開源靠攏。

這當然不是軟體巨頭們的施捨,而是開源軟體們自身確實爭氣,其影響力早已無人質疑,市場份額也是逐年不斷攀升。隨著網際網路及移動網際網路的高速發展,開源軟體在佔據核心地位的作業系統、資料庫、中介軟體、Web伺服器、移動作業系統幾個方面,均已經成為主流,總體形勢不是小好,也不是中好,而是一片大好,而且會越來越好。

根據Pingdom公司近期釋出的調查報告顯示,在全球排名前1萬位的網站中,開源軟體的使用率超過75%。近些年來最為流行的開源軟體組合LAMP(LNMP),其中的M,指的就是本書要談的主角“MySQL”,注意跟我讀,標準發音:My Ess Que Ell,不念My Sequal的喲,雖然後者的讀音更常聽到。

我本想多談一談MySQL的歷史典故,但是剛開頭就遇到了疑難,一方面MySQL的歷史真的並不久遠,正式的1.0版本在上個世紀九十年代才釋出,算來不過十餘年時間,這即使是在更新換代極快的IT行業,要談歷史也還有點單薄;另一方面,關於“MySQL”這個名字的起緣也是說法眾多,充滿了傳奇意味。這是本技術書,畢竟不是小說故事,我們也不能空口瞎編,但略過不提吧又有所不甘,權且列幾段搜尋引擎貢獻的材料給大家夥兒添幾份談資。

2.1 起源

讓我們先把時間的指標撥回到上個世紀七十年代末,在商業軟體企業即將迎來發展的黃金時期(括弧之一,話說Oracle公司的前身RSI,也是在這個時期成立的),一位名叫Michael Widenius(後來大家都親切地稱呼他Monty)的年輕孩子(歲不滿20)借了臺電腦,開始學習程式設計,人家起步早不說,這孩子即聰明又勤奮,沒多久就在Tapio Laakso Inc找到了工作。在這家公司除了鍛鍊好技術,最大的收穫就是結識了Allan Larsson,倆人在1985年合夥成立了TCX DataKonsult公司(MySQL公司的前身),專門給人做外包,主要從事資料探勘方面的業務。

現如今提到資料探勘,大家一準先想到了資料庫。有資料處理經驗的同學都知道,資料量小的時候一切都不是問題,隨著資料量增大,不僅效能會出現問題,運算的複雜度等等都成幾何級數增加。而且大家要知道,那可是上世紀的八十年代,那會兒伺服器的處理能力還遠不如現如今的智慧手機。

俗話說有困難要上,沒有困難製造困難也要上。在這樣艱苦的環境下,Monty決心給自己再製造些困難。背景是在此之前,MontyMonty開發了一款名為UNIREG的資料庫管理工具,UNIREG利用索引順序讀取資料,這種方式就是ISAM(Indexed Sequential Access Method)儲存引擎演算法的前身。不過,UNIREG是個資料庫的內部系統,並不具備SQL介面。作為一個已經具備多年開發經驗的高手,Monty深刻地理解沒必要重複造輪子,他選擇了一個較為流行的商用產品-mSQL資料庫,用於接收外部請求,同時使用自己開發的ISAM來處理資料,後來驗證發現這套方式仍然不夠快。Monty也嘗試過與mSQL的開發者聯絡,看看雙方是否有可能合作,使mSQLISAM深度結合,更好地提升處理效能。由於雙方溝通的郵件沒有抄送給我,所以我並不瞭解過程,但是我知道結果——沒談成。

Mone一咬牙,乾脆重寫了一套與mSQL功能類似,但效能更好的SQL介面,同時保持了一定相容性,這樣就方便原來那些使用mSQL的第三方程式碼,很容易就可以切換到使用新的SQL介面上,這套介面後來就演變成為MySQL

1996年,MontyDavid Axmark一起協作,寫出了MySQL的第一個版本,僅供小範圍內的試用,幾個月後就跳過2.0版本,直接釋出了3.11版本。

提示:David AxmarkMySQL公司創始人之一,同時也是MySQL資料庫的主要開發者之一。

MySQL 3.11版本最初發布在Solaris平臺下,不過很快就有了Linux平臺的版本。接下來的兩年裡,MySQL依次移植到各個平臺下,到1998年時甚至開始支援Windows平臺。

說到這兒,我們貌似忘了扒一個很有意思的八卦,MySQL這個名字到底是怎麼來的呢。關於“MySQL”這個名字,起源不是很明確。據MySQL公司創始人、以及MySQL資料庫軟體的主要開發者Monty本人(全是M開頭,繼續往後讀,會發現還有一堆的M等著亮相)所說,他也搞不清楚MySQL這個名字是哪來的(夠暈的)。一方面TcX公司(MySQL公司的前身)中已經有大量存在了十多年的庫和工具,都帶有字首“my”;另一方面,他的女兒名字也叫My,到底哪個因素才是促成MySQL這個名字的主因,這成了筆糊塗帳,誰也說不清楚。不過,我個人傾向於後一個原因,來自他女兒my的名字。

做為TcX公司的創始人之一,眾多工具或庫的開發者,其中一部分沒準就出自Monty本人之手,早年開發工具時,有意無意地借用女兒的名字來命名,這也完全說的過去。另外,如果我們把時間線拉長,會發現Monty以自己子女的名字,來為自己開發的產品命名是有慣例的。除了MySQL以外,比如說MaxDB,一款由SAP提供的關係型資料庫軟體(但實際上是由MySQL公司釋出),名字據悉來自Monty的小兒子MaxMonty還有個小女兒名叫Maria,這個名字也沒閒著,當前MySQL資料庫軟體最熱門的分支之一就叫MariaDB,而這同樣是由Monty負責的。由此我們也可以看出這其中的寓意,Monty對待自己開發的產品,就像自己的子女一樣。

2.2 根據地成立

MySQL此時只是一款資料庫產品的名字,還不是企業名稱,根據多番查詢的資料,MontyAllanDavid三個小夥伴應該是在1998年後,將Tcx更名(或合併建立)MySQL AB。這也有利於其商業策略的實施,MySQL AB負責MySQL軟體的核心開發,並且擁有“MySQL”的商標和版權。同年MySQL對外發布了正式版本,之前一直是alphabeta版本,www.mysql.com官網也建立起來了。

提示:公司名中的“AB”,在瑞典語中表示“股份公司”,是“aktiebolag”的首字母縮寫。

儘管MySQL這個名字的起緣稀裡糊塗鬧不清楚,不過MySQL的標誌,那隻著名小海豚的名字出處相當明確,它叫“Sakila”,名字很有愛,號稱是從一堆使用者提供的建議名稱中選出來的,這也是MySQL自帶的演示資料庫的名字。

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

相關文章