mysql5.7-8.0及mariaDB简单对比
Posted java编程之旅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql5.7-8.0及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掉未提交的空闲事务 |
以上是关于mysql5.7-8.0及mariaDB简单对比的主要内容,如果未能解决你的问题,请参考以下文章