MySQL數據庫的發展歷程


 

MySQL的起源:

  MySQL數據庫的歷史可以追溯到1979年,那時Bill Gates退學沒多久,微軟公司也才剛剛起步,而Larry Ellison的Oracle公司也才成立不久。那個時候有一個天才程序員Monty Widenius為一個名為TcX的小公司打工,並且用BASIC設計了一個報表工具,使其可以在4MHz主頻和16KB內存的計算機上運行。沒過多久,Monty又將此工具用C語言進行了重新編寫並移植到了UNIX平台上。當時,這只是一個很底層且僅面向報表的存儲引擎,名叫UNIREG。最初的UNIREG是運行在瑞典人制造的ABC800計算機上的。ABC800的內存只有32KB,CPU是頻率只有4MHz的Z80。在1983年Monty Widenius遇到了David Axmark,兩人相見恨晚,開始合作運營TcX,Monty Widenius負責技術,David Axmark負責搞管理。后來TcX將UNIREG移植到其他更加強大的硬件平台,主要是Sun的平台。雖然TcX這個小公司資源有限,但Monty Widenius天賦極高,面對資源有限的不利條件,反而更能發揮他的潛能。Monty Widenius總是力圖寫出最高效的代碼,並因此養成了習慣。與Monty Widenius在一起的還有一些別的同事,很少有人能堅持把那些代碼持續寫到20年后,而Monty Widenius卻做到了。

  1990年,一次Monty接到了一個項目,客戶需要為當時的UNIREG提供更加通用的SQL接口,當時有人提議直接使用商用數據庫,但是Monty Widenius覺得商用數據庫的速度難以令人滿意。於是Monty Widenius找到了David Hughes(mSQL的發明人)商討合作事宜。想借助於mSQL的代碼,將它集成到自己的存儲引擎中。然而令人失望的是,在經過一番測試后,他們發現mSQL的速度並不盡如人意,無法滿足客戶的需求。於是Monty Widenius雄心大起,決心自己重寫一個SQL支持。從此MySQL就開始誕生了。

  MySQL命名的由來:Monty Widenius有一個女兒,名叫My Widenius,因此他將自己開發的數據庫命名為MySQL。Monty還有一個兒子,名為Max,因此在2003年,SAP公司與MySQL公司建立合作伙伴關系后,Monty  Widenius又將與SAP合作開發的數據庫命名為MaxDB。而現在的MariaDB中的Maria便是Monty Widenius的小孫女的名字。

  (MaxDB:MaxDB是一種企業級數據庫管理系統(DBMS),以前稱為SAPDB,是著名的企業管理軟件供應商SAP公司的自有數據庫技術,並由SAP公司開發和支持。2003年,SAP AG和MySQL AB確立了合作伙伴關系,並將數據庫系統重命名為MaxDB。自此以后,MaxDB的開發一直由SAP開發者團隊負責,MaxDB是能夠承受高負載的開源數據庫,它適合於OLAP和OLTP應用,並能提供高可靠性、可用性、擴展性和非常完善的特性集。)

  (MariaDB:MariaDB數據庫管理系統是MySQL的一個分支,主要由開源社區在維護,采用GPL授權許可。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。在存儲引擎方面,使用XtraDB來代替MySQL的InnoDB。)

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

 

MySQL的歷史:

  1995年5月23日,MySQL的第一個內部版本發行了。

  1996年10月,MySQL 3.11.1發布(MySQL沒有2.x版本),有趣的是,第一個MySQL正式版恰巧只能運行在Sun Solaris上,仿佛昭示了它日后被Sun收購的命運。一個月后,Linux版本出現了。在接下來的兩年里,MySQL被依次移植到各個平台,同時加入了不少新的特性。在發布時,MySQL數據庫采用的許可策略有些與眾不同:允許免費使用,但是不能將MySQL與自己的產品綁定在一起發布。如果想一起發布,就必須使用特殊許可,意味着要花“銀子”。當然,商業支持也是需要花“銀子”的。其他方面,隨用戶怎么用都可以。這種特殊許可為MySQL帶來了一些收入,從而為它的持續發展打下了良好的基礎。

  1998年1月,MySQL關系型數據庫發行了第一個版本。它使用系統核心的多線程機制提供完全的多線程運行模式,並提供了面向C、C++、Eiffel、Java、Perl、PHP、Python及Tcl等編程語言的編程接口(API),且支持多種字段類型,並且提供了完整的操作符支持。而且MySQL已經能夠運行在10多種操作系統之上,其中包括應用非常廣泛的 FreeBSD、Linux、Windows 95和Windows NT等。很快MySQL 3.22也發布了,但它仍然存在很多問題--如不支持事務操作、子查詢、外鍵、存儲過程和視圖等功能。正因為這些缺陷,當時許多Oracle和SQL Server的用戶對MySQL根本不屑一顧。

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

  2000年4月,MySQL對舊的存儲引擎ISAM進行了整理,將其命名為MyISAM。

  2001年,Heikki Tuuri向MySQL提出建議,希望能集成他的存儲引擎InnoDB,這個引擎同樣支持事務處理,還支持行級鎖。該引擎之后被證明是最為成功的MySQL事務存儲引擎。

  2003年12月,MySQL 5.0版本發布,提供了視圖、存儲過程等功能。

  2008年1月,MySQL AB公司被Sun公司以10億美金收購,MySQL數據庫進入Sun時代。在Sun時代,Sun公司對其進行了大量的推廣、優化、Bug修復等工作。

  2008年11月,MySQL 5.1發布,它提供了分區、事件管理,以及基於行的復制和基於磁盤的NDB集群系統,同時修復了大量的Bug。

  2009年4月20日,Oracle公司以74億美元收購Sun公司,自此MySQL數據庫進入Oracle時代,而其第三方的存儲引擎InnoDB早在2005年就被Oracle公司收購。

  2010年12月,MySQL 5.5發布,其主要新特性包括半同步的復制及對SIGNAL/RESIGNAL的異常處理功能的支持,最重要的是InnoDB存儲引擎終於變為當前MySQL的默認存儲引擎。MySQL 5.5不是時隔兩年后的一次簡單的版本更新,而是加強了MySQL各個方面在企業級的特性。Oracle公司同時也承諾MySQL 5.5和未來版本仍是采用GPL授權的開源產品。

  2013年2月,MySQL5.6發布。Oracle最近宣布將於2021年2月停止5.6版本的更新,結束其生命周期。

  2015年12月,MySQL5.7發布,其性能、新特性、性能分析帶來了質的改變。

  2016年9月,MySQL開始了8.0版本,Oracle宣稱該版本速度是5.7的兩倍,性能更好。

  2018年4月,MySQL8.0.11發布。

 

  目前,MySQL已更新到8.0.18版本,但市場主流都還是使用的5.5/5.6/5.7版本。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM