一、常见发行版本:
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还未提供该功能。