mysql5.7-8.0及mariaDB简单对比

Posted java编程之旅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql5.7-8.0及mariaDB简单对比相关的知识,希望对你有一定的参考价值。

最近的项目在使用mysql5.7,领导让我调研8.0以及mariaDB的情况,有没必要转到mariaDB,毕竟mariaDB才是开源的。
经过一番搜索与查证,得到以下表格:


项目 mysql5.7 mysql8.0 mariaDB
身份认证插件 mysql_native_password caching_sha2_password mysql_native_password
原子DDL 不支持 支持 不支持
快速加列 不支持 支持,如果指定了AFTER,字段必须是在最后一列,否则会重新建立表,不适用于ROW_FORMAT  = COMPRESSED,DROP COLUMN需要重建表 支持,
   MariaDB  10.4支持对DROP删除字段使用algorithm=instant算法,支持加字段在任何位置上使用algorithm=instant算法
加密 表空间加密 表空间加密特性可对Redo  Log和Undo Log进行加密 MariaDB  支持二进制日志和临时表加密
数据库连接数被打满 不支持 Too  many connections,在MySQL 8.0版本中,有个类似的参数配置后,可连接管理 MariaDB  10.0和Percona5.6版本中,有个参数extra_port可以登录“后门”解决
clone克隆插件 不支持 8.0.17开始支持 不支持
降序索引 不支持 支持降序索引(InnoDB引擎) 不支持
公用表表达式CTE(Common table expressions) 不支持 支持CTE 支持,MariaDB从10.2.1开始支持WITH子句,10.2.2开始支持递归WITH
密钥管理 MySQL  也提供了一些用于密钥管理的插件,但它们仅在企业版中可用 MariaDB  提供开箱即用的 AWS 密钥管理插件
sys 模式 支持 不支持
超级只读 MySQL  通过提供超级只读(super read-only)模式来增强 read_only 功能 10.1版本后支持
不可见列 不支持 mariadb  10.3后引入,其行为是在默认的select *中不会包含不可见列,在insert table  values()中插入时,也不需要为其赋值。该特性使得在编写了通用的查询后,升级能够无缝进行
线程池 企业版支持连接线程池 MariaDB  支持连接线程池,这对于短查询和 CPU 密集型的工作负载(OLTP)来说非常有用
不兼容性 MariaDB 的文档中列出了 MySQL 和 MariaDB  之间的数百个不兼容问题。因此,我们无法通过简单的方案在这两个数据库之间进行迁移
许可 MySQL  提供了两个许可选项——GPL v2(用于社区版)和企业许可,MySQL 的社区版不包含线程池等功能,而这些功能会对数据库和查询性能产生重大影响 MariaDB  采用了 GPL v2 许可,用户可以使用 MariaDB 的所有功能
发布频率和更新 大约3个月左右发布一次 MariaDB  的发布频率比 MySQL 更频繁,大约一到两个月发布一次
开发 甲骨文的  MySQL 团队 MariaDB  开发团队(社区开发)
MySQL Shell 支持 不支持
JSON 数据类型 MySQL  支持由 RFC 7159 定义的原生 JSON 数据类型,可以高效地访问 JSON 文档中的数据 认为  JSON 数据类型不是 SQL 标准的一部分,MariaDB 没有提供这一增强功能
系统版本表 不支持 10.3  系统版本表有效防止数据丢失,支持DML(INSERT, DELETE,  UPDATE)操作的闪回,不支持DDL语句,使用闪回,必须设置binlog_row_image=FULL
自动KILL掉未提交的空闲事务 不支持 10.3支持自动KILL掉未提交的空闲事务
综合比较,mysql与marriaDB越来越不兼容,一旦选定后,作为企业开发一般确定后,不会频繁切换。
关于技术支持, MySQL 的开发者主要是甲骨文的 MySQL 团队,而 MariaDB 开发通过公开投票和邮件列表讨论的方式进行。此外,任何人都可以向 MariaDB 提交补丁,MariaDB 开发团队会考虑将这些补丁添加到主代码库中。因此,从某种程度上说,MariaDB 是由社区开发的,而 MySQL 主要由甲骨文开发。
从mysql8.0开始,加入了越来越多的特性,越来越像Oracle了,如何选择,得看个人了,普通轻度使用,mysql和marriaDB都可以。
最终结论是,我们正在使用mysql5.7,可升级8.0,不建议使用marriaDB.


以上是关于mysql5.7-8.0及mariaDB简单对比的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 7.0 使用 yum 安装 MariaDB 及 简单配置

mariadb的explain分析及InnoDB存储引擎

MariaDB与MySQL对比 --- 对分布式事务的支持

孤立森林(IForest)代码实现及与PyOD对比

数据库对比:选择MariaDB还是MySQL?

MariaDB Galera Cluster 之二 MariaDB Galera Cluster主要功能优缺点和对比