简述 MySQL 发展史

时间:2024-02-24 14:25:20

 

    MySQL的历史最早可以追溯到1979年,那时Oracle也才小打小闹,微软的SQL Server影子都没有。Monty Widenius在其合伙的TcX小公司工作时,用BASIC设计了一个报表工具,可以在4M主频和16KB内在的计算机上运行。随着时间的推移,这个小工具被用C重写并迁移到Unix上运行。当时,它只是一个很底层的面向报表的存储引擎,再配上一个报表前端。它就是大家知道的Unireg。

    1990年,该公司的客户急切要求访问其数据的SQL接口,TcX提出其中一方案是把数据都加载进一个商用数据库。但Monty对这个方案的执行速度并不满意。他尝试将mSQL的代码用做SQL层,并用自己的低层级的存储引擎集成进来,但效果也不好。于是, Monty决心自己重写一个SQL。

    1996年,MySQL 1.0发布,只面向一小拨人。同年10月,MySQL 3.11.1发布,只提供了Solaris下的二进制版本。一个月后,Linux二进制包也发布。 此时的MySQL还非常简陋,除了在一个表上做一些Insert,Update,Delete和Select 操作,没有其他更多的功能。

    接下来的两年里,MySQL依次移植到各个平台下。它发布时,采用的许可策略,有些与众不同:允许免费商用,但是不能将MySQL与自己的产品绑定在一起发布。如果想一起发布,就必须使用特殊许可,意味着要花银子。

    MySQL3.22应该是一个标志性的版本,提供了基本的SQL支持。还带有一个复杂的优化器,新版本速度很快,且非常稳定。尽管如此,它还是不支持事务、子查询、外键、存储过程和视图,只存在表级别的锁

    1999-2000,一个名叫MySQL AB的独立公司成立了(Monty Widenius也作为创始人之一),它聘请了几位开发者并与Sleepycat公司建立合作伙伴关系,提供访问Berkeley DB数据文件的SQL接口。自从Berkeley DB具备事务功能之后,它就赋于了MySQL支持事务的特质,补上了它的短板。在为集成的Berkeley DB做了一些修改之后,MySQL 3.23发布了。

    2000 年,MySQL 公布了自己的源代码,并采用GPL(GNU General Public License)许可协议,正式进入开源世界。

    2000年4月,有了Slashdot的支持与赞助,master/slave机制加入。不支持事务的老存储引擎ISAM被重写了,并以MyISAM的形式发布。经过大量的改良,当前版本也支持了全文搜索。MySQL AB还曾有一个跟NuShpere短期的合作,在MySQL中加入了一个支持行级锁和事务的引擎Gemini,但因法律问题于2001年结束了。也就在这时,Heikki Tuuri提议用自己的引擎集成到其中,并接手MySQL AB的工作,这个引擎就是同样支持行级锁和事务的InnoDB

    2003年3月,MySQL 4.0正式发布。新增特性:除了MySQL/InnoDB组合,还有查询缓存(Query Cache),优化器的改良,客户端/服务器间的协议用SSL加密。

    2004年10月MySQL 4.1发布,2005年10月发布里程碑的一个版本 5.0。4.1版本新增子查询,空间索引支持也加到了MyISAM引擎中。Unicode支持也被实现了。客户端/服务器协议也有了大量的改动,而且支持预处理语句(prepared statement)。5.0版本加入了存储过程,服务器端游标触发器视图分布式事务(Xa transactions),查询优化器的显著改进以及其它的一些特性。MySQL的开发者发现如果要让4.1 稳定下就要花很大的工夫,如果他们要把4.1的新特性都加进去,就必须先搞定存储过程,所以他们痛下决心另创了一个分枝来开发5.0。经一度因这个造成了一些混乱——两个分枝同时处在alpha 阶段,后来4.1稳定了,这个尴尬也就随之而解了。

    在5.0 之后的版本里,MySQL明确地表现出迈向高性能数据库的发展步伐。5.1版本紧随其后,其中加了好多的新的改进,如表分区(table data partitioning),基于行的复制(row-based replication),事件调度器(event schedular),和让新存储引擎和其它插件轻松集成的标准化插件API。

.....

2008年1月16号 Sun公司收购MySQL。

2009年4月20,Oracle收购Sun公司。

2010年04月22 发布MySQL 5.5, MySQLcluster 7.1。


以上信息整理于互联网,如有错误,请留言更正。