常见的MySQL发行版本有哪些,各有什么优缺点

一、常见发行版本:

1、MySQL官方版本(分为社区版和企业版)

企业版性能略强,提供了更多的功能和工具

2、Percona MySQL

Percona是由MySQL最初开发者组成的一个社区,Percona MySQL是基于官方社区版本二次开发的,在MySQL官方社区版的基础上增加了一些MySQL官方企业版才有的功能,同时对官方社区版进行了一些优化,从目前公布的数据来看,Percona MySQL 性能是要优于MySQL官方社区版的。

Percona MySQL 下载地址:https://www.percona.com/downloads/Percona-Server-LATEST/

3、MariaDB

MariaDB是由MySQL初始创建者在MySQL被Oracle收购之后,又独立成立了一家公司,来开发的数据库。

其以MySQL5.5源代码为基础,发展起来。

MariaDB并不能完全和MySQL官方版完全兼容,但大多数功能是兼容的。

我们可以很容易的将数据从MySQL迁移到MariaDB上。

MariaDB 下载地址:https://downloads.mariadb.org/

 

二、各个发行版之间的区别及优缺点

1、基础对比
MySQL Percona MySQL MariaDB
是否开源 开源 开源 开源
事务型存储引擎 InnoDB XtraDB XtraDB
监控工具 企业版监控工具,社区版不提供 Percona Monitor工具 Monyog

说明:

InnoDB属于Oracle公司,不对外提供,因此对于事务型存储引擎,Percona MySQL 和 MariaDB使用的都是由percona公司开发的XtraDB,XtraDB和InnoDB完全兼容。

对于监控工具来说,尽管MySQL社区版不提供监控工具,但使用Percona Monitor工具 或 Monyog都可以实现对MySQL社区版的数据监控。

2、高可用对比
MySQL Percona MySQL MariaDB
基于日志点复制 支持 支持 支持
基于Gtid复制 支持 支持 基于gtid复制
高可用集群方案 Replication Replication、PXC Galera Cluster
数据库中间件 MySQL Router Proxy SQL MaxScale

说明:

基于Gtid复制方面,MySQL和Percona MySQL都支持,MariaDB虽然也支持,但MariaDB的gtid和MySQL不兼容,因为生成规则和MySQL官方版不同。

数据库中间件方面,它们功能是类似的,都是通用的,都是作为和mycat类似的数据库中间件。但值得注意的是,MaxScale对MySQL5.6及以前版本有很好的的支持,但对5.6版本以后的版本支持并不好。

3、安全性对比
MySQL Percona MySQL MariaDB
防火墙 企业版提供 ProxySQL FireWall MaxScale FireWall
用户审计功能 企业版提供 审计日志 审计日志
密码加密方面 用户密码生命周期 用户密码生命周期
加密方式 sha256_password caching_sha2_password sha256_password caching_sha2_password ed25519_sha256 password

说明:

防火墙方面:MySQL社区版是没有这个概念的,MySQL只在企业版提供防火墙功能。Percona MySQL 和 MariaDB都是通过其数据库中间层产品来间接提供防火墙功能。但值得一提的是,MariaDB的MaxScale FireWall 并不是开源的。

用户审计方面:MySQL并没有在社区版提供该功能,只在企业版提供。Percona MySQL和MariaDB都是以插件的方式提供了审计日志功能。对用户的行为进行审核和监控。

用户密码方面:安全性方面重点在于用户密码是否安全,密码是否很容易被暴力破解,MySQL在8.0版本中,在安全特性上有了很大的提升,不仅可以限制用户密码的复杂度,同时可以对密码的生命周期进行控制,来限制密码重复使用的历史次数。并且升级了其默认的密码加密方法,用caching_sha2_password 插件,不仅提高了密码加密的速度,同时可以保证同一密码每次生成的加密串是不同的,大大降低了通过占库对密码进行破解的可能性。

该功能目前在MySQL官方版和Percona MySQL中都可以看到,但目前MariaDB还未提供该功能。