天天看點

資料庫各廠商發展曆史(4.MySQL)

如若轉載,請務必注明出處,尊重個人勞動。iihero 2008.9.26于CSDN

MySQL這個名字,起源不是很明确。一個比較有影響的說法是,基本指南和大量的庫和工具帶有字首“my”已經有10年以上,而且不管怎樣,MySQL AB創始人之一的Monty Widenius的女兒也叫My。這兩個到底是哪一個給出了MySQL這個名字至今依然是個密,包括開發者在内也不知道。

MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的創始人從使用者在“海豚命名”的競賽中建議的大量的名字表中選出的。獲勝的名字是由來自非洲史瓦濟蘭的開源軟體開發者Ambrose Twebaze提供。根據Ambrose所說,Sakila來自一種叫SiSwati的史瓦濟蘭方言,也是在Ambrose的家鄉烏幹達附近的坦尚尼亞的Arusha的一個小鎮的名字。

 MySQL,雖然功能未必很強大,但因為它的開源、廣泛傳播,導緻很多人都了解到這個資料庫。它的曆史也富有傳奇性。

MySQL的曆史最早可以追溯到1979年,那時Oracle也才小打小鬧,微軟的SQL Server影子都沒有。有一個人叫Monty Widenius, 為一個叫TcX的小公司打工,并用BASIC設計了一個報表工具,可以在4M主頻和16KB内在的計算機上運作。過了不久,又将此工具,使用C語言重寫,移植到Unix平台,當時,它隻是一個很底層的面向報表的存儲引擎。這個工具叫做Unireg。

可是,這個小公司資源有限,Monty天賦極高,面對資源有限的不利條件,他反而更能發揮潛能,總是力圖寫出最高效的代碼。并是以養成了習慣。與Monty同在一起的還有一些别的同僚,很少有人能堅持把那些代碼持續寫到20年後,而Monty卻做到了。

1990年,TcX的customer 中開始有人要求要為它的API提供SQL支援,當時,有人想到了直接使用商用資料庫算了,但是Monty覺得商用資料庫的速度難令人滿意。于是,他直接借助于mSQL的代碼,将它內建到自己的存儲引擎中。但不巧的是,效果并不太好。于是, Monty雄心大起,決心自己重寫一個SQL支援。

1996年,MySQL 1.0釋出,隻面向一小撥人,相當于内部釋出。到了96年10月,MySQL 3.11.1釋出了,呵呵,沒有2.x版本。最開始,隻提供了Solaris下的二進制版本。一個月後,Linux版本出現了。

緊接下來的兩年裡,MySQL依次移植到各個平台下。它釋出時,采用的許可政策,有些與衆不同:允許免費商用,但是不能将MySQL與自己的産品綁定在一起釋出。如果想一起釋出,就必須使用特殊許可,意味着要花銀子。當然,商業支援也是需要花銀子的。其它的,随使用者怎麼用都可以。這種特殊許可為MySQL帶來了一些收入,進而為它的持續發展打下了良好的基礎。(細想想,PostgreSQL曾經有幾年限入低谷,可能與它的完全免費,不受任何限制有關系)。

MySQL3.22應該是一個标志性的版本,提供了基本的SQL支援。

1999-2000年,有一家公司在瑞典成立了,叫MySQL AB (不知道AB是什麼意思,待查)。   雇了幾個人,與Sleepycat合作,開發出了 Berkeley DB引擎, 因為BDB支援事務處理,是以,MySQL從此開始支援事務處理了。

2000年4月,MySQL對舊的存儲引擎進行了整理,命名為MyISAM。同時,2001年,Heikiki Tuuri向MySQL提出建議,希望能內建他們的存儲引擎InnoDB,這個引擎同樣支援事務處理,還支援行級鎖。

如今,遺憾的是,BDB和InnoDB好像都被Oracle收購了,為了消滅競争對手,哪怕是開源的,都是不擇手段。

MySQL與InnoDB的正式結合版本是4.0。

到了MySQL5.0,2003年12月,開始有View, 存儲過程之類的東東,當然,其間, bug也挺多。

在2008年1月16号 MySQL被Sun公司收購。

最近,MySQL的創始人Monty Widenius已經向Sun送出了辭呈。head都要走了。

據說,被Sun收購的公司多薄命,不知道MySQL今後前途如何,希望一路走好。相信MySQL的生命力還是很長久的。

<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>