经常遇见一些开发甚至DBA咨询:请问该选择哪个版本的MySQL呢?各版本之间是否可以通用?阿里云、腾讯云那么多种版本的MySQL数据库产品,MySQ版、MariaDB版、兼容MySQL的分布式数据库,究竟选择哪个呢?
现在互联网公司使用MySQL数据库,无非就两种:规模大点的IDC托管服务器自助维护数据库,另外就是选择上云。不管哪种模式都逃不开上面说的这个问题,特别是对于不太熟悉MySQL的开发人员,这更让人崩溃了!!
先说结论吧:
(1)如果是自己搭建维护,建议使用MySQL官方分支【 MySQL Community Server】,推荐版本MySQL 5.7.30
下载地址:/
说明:最新的8.0虽然已经迭代到了8.0.20版本,也有很多牛逼的特性,但是业内仍未大规模应用,稳定性有待验证,不过非核心业务可以逐步尝鲜使用了。
(2)如果是阿里云和腾讯云,建议选择云数据库 MySQL 5.7版
说明:选择这个版本主要考虑稳定性,另外就是考虑业务规模大了或者混合云情况下的版本统一,简化维护成本
注意:上面的版本选择基于普通的OLTP应用场景,如果你的业务数据量特别大或者复杂的统计分析类需求,则不太合适,可能要结合一些分布式数据库、列存数据库配合解决需求,不管自维护还是上云,不能依赖一种数据库去解决所有的问题。要不阿里云、腾讯云为啥去发布十几种数据库呢!
MySQL 的主流分支
目前业界的MySQL主流分支版本有Oracle官方版本的MySQL、Percona Server、MariaDB。
1 . 官方版本的MySQL
目前官网最新的GA版就是MySQL 8.0.20,这个版本可能是MySQL数据库又一个]时代的开始,迄今为止,MySQL 8.0无论在功能还是性能(整体上),都是目前最好的MySQL版本,但是为了支持大量的新功能特性,这个版本调整的太大了,稳定性、可靠性还需要一定周期才能保证。8.0的最新特性这里不再列出,感兴趣的可以找找。目前使用官方版求稳定仍然建议5.7系列,如果想尝鲜直接上车8.0.
另外从长期来看,官方版本的MySQL,目前在Oracle公司里有实力雄厚的开发团队支持,产品迭代速度稳定,基本是每三个月发布一个小版本,另外依赖早期Oracle数据库优秀的产品、开发经验,官方MySQL前景看好。
官网:/
2 . Percona Server
Percona Server是MySQL重要的分支之一,是由原MySQL性能测试团队Peter发起成立。它基于官方版本优化进行了性能提升以及管理增强,
并集成了TokuDB、审计、PAM、线程池、审计等功能,所以Percona Server也可以称为增强的MySQL与开源的插件的结合。由于官方版本的MySQL在一些特性的使用上有一定的局限性,需要收费。所以Percona Server就有了一定的市场占有比例,也比较受大家的欢迎。像一些常用的工具包xtrabackup、percona-toolkit等,在生产环境中是DBA的必备武器。而且Percona还收购了TokuDB公司,TokuDB存储引擎支持数据压缩,满足了不少特定场景下需求。
官网:
3 . MariaDB
Mariadb是由MySQL创始人Monty创建的,是一款高度兼容的MySQL产品,主要由开源社区维护,采用GPL授权许可。在当年Oracle把MySQL收购之后,为避免MySQL在开源社区力度上的下降【比如担忧Oracle将MySQL给闭源了】,MariaDB由此而生。它不仅仅是MySQL的一个替代品,还创新与提高了MySQL原有的技术。比如Server层的改进,引入hash join【官方8.0也支持了】,还最早引入了线程池、审计、PAM认证、多源复制、并行复制等,集成Columnstore、TokuDB等多种引擎,集成maxscale中间件解决方案等。但是随着官方8.0的发布,很多功能官方也都开始覆盖,且官方新版本由于掌握这InnoDB引擎,新的metadata都是用InnoDB存储,MariaDB暂无法兼容。
官网: