MySQL的发展

MySQL 属于中小型关系型数据库管理系统,目前被广泛地应用到互联网上的大、中、小型网站中,相比于其他数据库产品,其特点如下。
( 1)与 Oracle 相比, MySQL 由于体积小、安装成本低、易于维护、速度快、总体拥有成本低、开放源码且无版权制约,成为商业数据库的首选。
( 2)可以使用 SQL 访问与管理 MySQL 数据库。
( 3) MySQL 历史悠久,社区及用户非常活跃,遇到问题可以寻求帮助。
( 4)品牌口碑效应使得企业无须考虑就直接使用 LAMP、 LNMP 流行架构。
( 5) MySQL 同时提供多种应用程序编程接口( Application Programming Interface, API),支持多种操作系统,并支持多种开发语言,特别对流行的 PHP 语言有很好的支持。

1.初次见面

迈克尔· 维德纽斯( Michael “Monty” Widenius)于 1962 年出生于芬兰赫尔辛基,是开源MySQL 的创始人和 MySQL 第一行代码的作者, 独自完成了初期 MySQL 服务器端 95%的代码撰写。Monty 有一个女儿,名叫 My,因此他将自己开发的数据库命名为 MySQL。 Monty 还有一个儿子,名为 Max,在 2003 年 SAP 公司与 MySQL 公司建立合作伙伴关系后, Monty 又将与 SAP 合作开发的数据库命名为 MaxDB。而现在的 MariaDB 中的 Maria 是 Monty 小孙女的名字。 MySQL 的海豚标志是通过用户命名竞赛选出的。

2.蓬勃发展

随着业务的发展, MySQL 的版本也在不断地更新,为了满足客户的需求加入了许多新的功能。

1995 年 5 月 23 日, MySQL 的第一个内部版本发行了,次年, MySQL 官方正式发行版( MySQL3.11.1)对外公布。

1998 年 MySQL 3.22 发布,此版本仍然不支持事务操作、子查询、外键、存储过程和视图等功能。

1999 年的冬天,独立商业公司 MySQL AB 在瑞典的中部城市乌普萨拉( Uppsala)成立,并于同年发布了包含事务型存储引擎 BDB 的 MySQL 3.23。

2003 年 MySQL 4.1 推出,第一次支持子查询,支持 unicode 和预编译 SQL 等功能。为了适应日益苛刻的市场需求,不久后,公司又开发出了 MySQL 5.0。这个新版本包含有史以来 MySQL 最大的变化,添加了存储过程、服务端游标、触发器、查询优化及分布式事务等。

2008 年 2 月, Sun Microsystems 公司动用 10 亿美元收购了 MySQL,造就了开源软件的收购最高价。 MySQL 被收购之后, MySQL 图标停止使用,取而代之的是 Sun/MySQL 图标。公司合并后推出了 MySQL 5.1 GA( GA 即 General Availability,可以用于生产环境的版本,经过了 bug 的修复与测试)和 MySQL 5.4 Beta。

2009 年, Oracle 公司以 74 亿美元的价格,将 Sun Microsystems 和 MySQL 通盘收购于旗下。至此,数据库之间的商业竞争以 Oracle 公司的胜利宣告结束。
2018 年, MySQL 8.0 问世,据官方介绍, MySQL 8.0 的速度比 MySQL 5.7 快两倍

目前 MySQL 官方网站上有四个版本

分别是 GA 版、 DMR 版、 RC 版和 Beta 版。一般情况下,生产环境或者测试环境要选择 GA 版。针对不同的用户群体与需求,现在的 MySQL 主要有社区版服务器和企业版服务器,两者的特点如下。
MySQL Community Server(社区版服务器): 完全开源免费,应用较为广泛,支持 GPL 协议。MySQL 流行后,随着时代对数据处理要求的不断提高,其版本也在不断更新。其缺点是官方不提供技术支持,只能靠社区维护。社区版服务器主要用于个人网站和小型企业。
MySQL Enterprise Server(企业版服务器):主要供大、中型企业使用,官方提供保障以及补丁服务,并收取相关的费用,但可以免费试用 30 天。

目前企业中主要使用的 MySQL 版本如表所示。

image.png

MySQL 8.0 关键的改进包括 OpenSSL 安全性、新的默认身份验证、 SQL 角色、分解超级特权、密码强度等,同时增加了资源组功能,通过将用户线程映射到 CPU,为用户提供一个选项,以针对特定硬件上的特定工作负载进行优化。 MySQL 8.0 还加入了开发者功能,使开发人员可以更好地调试与运行。 数据类型也得到了改进, 在 BINARY 数据类型上进行了按位操作, 并且改进了 IPv6 和 UUID 功能。

MySQL 使用由 3 个数字和 1 个可选的后缀组成的版本名称,如 mysql-5.7.1 m1。

第一个数字( 5)是主版本号。第二个数字( 7)是次版本号,主版本和次版本一起构成版本系列号,描述的是一套稳定的功能。第三个数字( 1)是修订号,随每个新 bug 被修复而递增。大多数情况下,系列中最新版本是最佳选择。

版本名称还可以包含后缀以指示版本的稳定性级别,有以下 3 种情况。

( 1) mN( m1,m2,m3…)表示里程碑编号。 MySQL 开发使用里程碑模型,其中每个里程碑都引入了一小部分经过全面测试的功能。从一个里程碑到下一个里程碑,根据试用早期版本的社区成员提供的反馈,功能界面可能会发生变化,甚至可能会删除功能。里程碑版本中的功能可被视为具有预生产质量。
( 2) RC 表示候选发布。通过 MySQL 的所有内部测试后,候选发布版本被认为是稳定的。 RC版本可能仍会引入新功能,但重点转移到修复错误以稳定早期功能。
( 3) GA 表示一般可用性或生产版本。 GA 版本是稳定的,已成功通过早期阶段,并且被认为是可靠的,没有严重的错误,适用于生产环境。
MySQL 的开发始于里程碑版本,随后是 RC 版本,最后达到 GA 版本。

在生产环境下,数据库是非常重要的,因此在部署 MySQL 的时候一定要慎重选择,需要从以下方面考虑。

1.从更新角度,追求稳定

目前互联网企业中常用的 MySQL 版本为 MySQL 5.5 和 MySQL 5.6,建议选择发布前后几个月没有较大漏洞修复的版本,避开大量修复的版本。对企业中核心的应用应部署稳定版本的数据库,切勿追求新颖体验而去升级更换。

2.从企业实际情况角度,追求合适

作为一名合格的运维人员,在部署时还需要考虑到开发人员在开发程序时使用的版本是否与程序兼容的问题,应事先与开发人员沟通。搭建新版本的数据库时,应先测试运行几个月。

本章主要讲解了数据库的概念与分类、关系型数据库与非关系型数据库的区别,介绍了关系型数据库 MySQL 的发展历史和其常用的版本。 MySQL 是一个跨平台的开源数据库,在现在企业中流行的 LAMP、 LNMP 架构中扮演着重要的角色,因其体积小、速度快、拥有成本低、源码开放,被广泛应用在 Internet 上的中、小型网站中。