1. 程式人生 > >1.MySQL發展史

1.MySQL發展史

mysql 發展史

1.MySQL發展史

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

MySQL的歷史最早可以追溯到1979年,有一個人叫MontyWidenius, 為一個叫TcX的小公司打工,並用BASIC設計了一個報表工具,可以在4M主頻和16KB內在的計算機上運行。過了不久,又將此工具,使用

C語言重寫,移植到Unix平臺,當時,它只是一個很底層的面向報表的存儲引擎。這個工具叫做Unireg

1985 年,瑞典的幾位誌同道合小夥子(以David Axmark 為首)成立了一家公司,這就是MySQLAB 的前身。這個公司最初並不是為了開發數據庫產品,而是在實現他們想法的過程中,需要一個數據庫。他們希望能夠使用開源的產品。但在當時並沒有一個合適的選擇,沒辦法,那就自己開發吧。

在最初,他們只是自己設計了一個利用索引順序存取數據的方法,也就是I SA MIndexed Sequential Access Method)存儲引擎核心算法的前身,利用ISAM 結合

mSQL 來實現他們的應用需求。在早期,他們主要是為瑞典的一些大型零售商提供數據倉庫服務。在系統使用過程中,隨著數據量越來越大,系統復雜度越來越高,ISAM mSQL 的組合逐漸不堪重負。在分析性能瓶頸之後,他們發現問題出在mSQL 上面。不得已,他們拋棄了mSQL,重新開發了一套功能類似的數據存儲引擎,這就是ISAM 存儲引擎。大家可能已經註意到他們當時的主要客戶是數據倉庫,應該也容易理解為什麽直至現在,MySQL 最擅長的是查詢性能,而不是事務處理(需要借助第三方存儲引擎)。

1990年,TcXcustomer 中開始有人要求要為它的API提供SQL支持,當時,有人想到了直接使用商用數據庫算了,但是

Monty覺得商用數據庫的速度難令人滿意。於是,他直接借助於mSQL的代碼,將它集成到自己的存儲引擎中。但不巧的是,效果並不太好。於是,Monty雄心大起,決心自己重寫一個SQL支持。

1996年,MySQL 1.0發布, 在小範圍內使用。到了9610月,MySQL 3.11.1發布了,沒有2.x版本。最開始,只提供了Solaris下的二進制版本。一個月後,Linux版本出現了。此時的MySQL還非常簡陋,除了在一個表上做一些InsertUpdateDeleteSelect 操作職位,沒有其他更多的功能。

緊接下來的兩年裏,MySQL依次移植到各個平臺下。它發布時,采用的許可策略,有些與眾不同:允許免費商用,但是不能將MySQL與自己的產品綁定在一起發布。如果想一起發布,就必須使用特殊許可,意味著要花銀子。當然,商業支持也是需要花銀子的。其它的,隨用戶怎麽用都可以。這種特殊許可為MySQL帶來了一些收入,從而為它的持續發展打下了良好的基礎。

1999-2000年,有一家公司在瑞典成立了,叫MySQL AB 雇了幾個人,Sleepycat合作,開發出了Berkeley DB引擎, 因為BDB支持事務處理,所以,MySQL從此開始支持事務處理了。

2000 年的時候,MySQL 公布了自己的源代碼,並采用GPLGNU General PublicLicense)許可協議,正式進入開源世界。

20004月,MySQL對舊的存儲引擎進行了整理,命名為MyISAM

2001年,Heikiki TuuriMySQL提出建議,希望能集成他們的存儲引擎InnoDB,這個引擎同樣支持事務處理,還支持行級鎖。所以在2001年發布的3.23 版本的時候,該版本已經支持大多數的基本的SQL 操作,而且還集成了MyISAMInnoDB 存儲引擎。MySQLInnoDB的正式結合版本是4.0

200410月,發布了經典的4.1版本。 200510月,有發布了裏程碑的一個版本,MySQL5.0. 5.0中加入了遊標,存儲過程,觸發器,視圖和事務的支持。在5.0 之後的版本裏,MySQL明確地表現出邁向高性能數據庫的發展步伐。

2008116 MySQLSun公司收購。

20090420Oracle收購Sun 公司,MySQL 轉入Oracle 門下。

20100422 發布MySQL 5.5, MySQLcluster 7.1.


1.MySQL發展史