MySQL发展历史

unimof 2021年02月27日 275次浏览

Mysql是当今互联网时代数据库领域的无冕之王,那么,Mysql是如何从0开始,一步一步发展到今天的呢?

一、UNIREG

Mysql的前身,是一款叫做UNIREG的本地数据库,类似于后来的sqlite 或 firebase,但是功能和通用性远没有后两者做得好,但就是这样一款毫不起眼的产品,发展成了后来大名鼎鼎的Mysql。

创建UNIREG的人,就是后来的Mysql之父,Michael Widenius,芬兰人,但是他还只是一个刚毕业的大学生,在一家名为TcX的小公司上班。

UNIREG在这家公司工作的时候,用BASIC设计了一个报表工具,使其可以在4MHz主频和16KB内存的计算机上运行。后来又将此工具用C语言进行了重新编写并移植到了UNIX平台上。

在1983年Michael Widenius遇到了David Axmark,两人相见恨晚,开始合作运营TcX,Michael Widenius负责技术,David Axmark负责搞管理。两人各展所长,相互配合,一路走到了1990年。

一次Michael 接到了一个项目,需要为当时的UNIREG提供更加通用的SQL接口,Michael Widenius觉得商用数据库的速度难以令人满意,想借助于另一个开源项目:mSQL,将它集成到自己的存储引擎中,然而在经过一番测试后,他发现mSQL的速度无法满足客户的需求。于是Michael Widenius决心自己重写一个SQL支持,并以自己一个女儿的名字:My Widenius命名,取名为MySQL,MySQL由此正式诞生。

二、Mysql

1995年5月23日,MySQL的第一个内部版本发行

1996年10月,MySQL关系型数据库发行了第一个版本。

1998年1月,MySQL 3.11.1发布(所以MySQL没有2.x版本),这是Mysql第一个对外提供服务的版本,MySQL主从复制功能也是从这个时候加入到MySQL,并提供了面向C、C++、Eiffel、Java、Perl、PHP、Python及Tcl等编程语言的编程接口(API),支持多种字段类型,提供了完整的操作符支持。在接下来的两年里,MySQL被依次移植到各个平台,包括应用非常广泛的 FreeBSD、Linux、Windows 95和Windows NT等。但它仍然存在很多问题--如不支持事务操作、子查询、外键、存储过程和视图等功能。

1999-2000年,MySQL AB公司在瑞典成立,Michael Widenius雇了几个人与Sleepycat合作,开发出了Berkeley DB引擎, 因为BDB支持事务处理,从此MySQL开始支持事务处理了。

2000年4月,MySQL对旧的存储引擎ISAM进行了整理,将其命名为MyISAM。

2001年,Heikki Tuuri向MySQL提出建议,希望能集成他的存储引擎InnoDB,这个引擎同样支持事务处理,还支持行级锁。该引擎之后被证明是最为成功的MySQL事务存储引擎。

2003年3月,MySQL 4.0发布,MySQL 4.0是从3.23发展而来,较之3.23版本有了很大的提高,并支持FULLTEXT索引、多表UPDATE和DELETE,该版本使MySQL在应用程序开发中获得了更广泛的应用,特别是Web应用,。但是在4.0版中,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+,但市场主流都还是使用的5.6/5.7版本。

三、MariaDB

MariaDB由MySQL的创始人Michael Widenius主导开发,他早前以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。开发这个分支的原因是,Michael Widenius认为在Oracle控制下的MySQL开发,有两个主要问题:1. MySQL核心开发团队是封闭的,完全没有Oracle之外的成员参加。很多高手即使有心做贡献,也没办法做到。2. MySQL新版本的发布速度,在Oracle收购Sun之后大为减缓。这些对MySQL的 健康发展,保持开源特性都是非常不利的现象,所以Michael Widenius觉得有必要另起一个分支,继续推进MySQL开源开发和版本迭代。但是MySQL的产品商标已经被买断,不能再继续使用,所以需要另取一个名字,这就是MariaDB。

MariaDB名称来自Michael Widenius的女儿Maria的名字。

四、LAMP

LMAP即Linux+Apache+Mysql/MariaDB+Perl/PHP/Python的首字母缩写。而这个词首次出现在Michael Kunze为德国电bai脑杂志duc't(1998,第12期,230页)而写的文章。这篇文章意在展示一系列的自由软件成为了商业包的替换物。由于IT世界众所周知的对缩写的爱好,Kunze提出LAMP这一容易被市场接受的术语来普及自由软件的使用。

MySQL的快速发展,可以说得益于LMAP架构的快速推广,在那个时代,Linux提供开发环境,Apache HTTP服务器提供内容,MySQL数据库存储内容,PHP实现程序逻辑,这一系列完美的组合,形成了免费,高效的组合,满足了当时Web发展的需要,反过来,也使得每一个部分,都得到了快速的发展和应用,成为了后来互联网时代不可缺少的基石,LAMP架构,也成为了互联网时代经典的组合,为大量的Web服务提供能力支撑。