MySQL


# MySQL

本系列以 MySQL 8.0 作为安装版本进行知识点梳理,但考虑到目前在生产环境中用的比较多的是 5.7,故优先使用向前兼容的 5.7 版本功能,对于 8.0 特有的新功能和特性,仅是学习一下。

在日常工作与学习中,无论是开发、运维、还是测试,对于数据库的学习是不可避免的,同时也是日常工作的必备技术之一。而目前业内所用的关系型数据库中,占比较多的还是 MySQL。


哪个版本的 MySQL 可以用于生产环境

MySQL 有很多版本,支持在生产环境中使用的有 8.0、5.7 和 5.6:

  • MySQL 8.0(GA),MySQL 8.0.11 于2018年4月19日发布。
  • MySQL 5.7(GA),MySQL 5.7.9 于2015年10月21日发布。
  • MySQL 5.6(GA),MySQL 5.6.10 于2013年2月5日发布。
  • MySQL 5.5(GA),MySQL 5.5.8 于2010年12月3日发布。

为什么这三个版本可以用于生产环境

MySQL 的产品生命周期分为三个阶段,首要阶段、延伸阶段和维持阶段(MySQL 版本号的前两位为主版本号,例如 8.0、5.7、5.6,后面的为维护版本号码。MySQL 的生命周期计算依据主版本号)。

  • 首要阶段的时间为产品 GA 开始 5 年。处于首要阶段的产品会定期发布维护版本、更新、修正错误及修补安全漏洞。
  • 延伸阶段为产品 GA 后 6-8 年。延伸阶段的产品会对特定的错误及安全漏洞发布维护版本和更新。
  • 产品从 GA 的第 9 年起进入维持阶段。进入维持阶段后,MySQL 将不会对其进行维护版本的发布、更新和修正错误。

因此对应 MySQL 各个版本的 GA 日期,目前生产系统上支持 8.0、5.7 及 5.6 版本的 MySQL。


为什么 MySQL 的版本号没有 6.x 和 7.x

早在 2008 年,Sun 收购 MySQL AB 以前,公司内部已经在进行着版本号 6 的开发工作了(5.0 在 2005 年发布)。然而,版本 6 的 MySQL 制定的目标和计划过于激进,步子迈得有点儿大,随着收购的顺利完成,项目也被砍掉了。

至于版本号 7,则是用在了 MySQL Cluster 上。由于新版的 MySQL 带来了许多的重大更新,开发者们决定是时候把版本号往前滚动一下了,于是便有了 8。

参考:MySQL 8 is coming (opens new window)


为什么选择 MySQL 8.0 做安装版本

5.7 版本虽然还在其生命周期,但已经进入了维持阶段,不出意外,将于2023年的10月份结束对它的维护,进入到与 5.6 同样的状态。

8.0 版本发布于2018年的4月份,除了在功能和性能上进行了大幅的增强和改进,它的发布方式(持续发布)使得用户可以在第一时间获得最新的功能和改进,而不像以往一定要等到大版本升级才能获得新的功能。

但现实中,数据库系统升级影响很大,以前的 5.6 和 5.7 版本目前也足够稳定,如果不是新开的项目,需要慎重考虑是否升级(毕竟像 Facebook 这样的公司,将 MySQL 从 5.6 升级至 8.0 也花了几年时间,覆盖率还没达到 100%)。

因此,考虑到实际情况,本系列采用 MySQL 8.0 做安装版本,但会优先使用向前兼容的 5.7 版本功能,对于 8.0 特有的新功能和特性,仅是学习一下。


MySQL 5.7 和 8.0 性能对比

该性能测试结果未经考验,仅供参考。