What's New in MariaDB 10.4

来源:这里教程网 时间:2026-03-01 12:04:32 作者:

MariaDB 10.4 是其当前的开发分支。 5 21 日, 10.4.5 RC release 版本发布,距离正式版本发布越来越近。 10.4 的新特性也越来越值得关注。本文总结 mariadb 官方发布一些的博客内容。对应详细信息,可以细读 MariaDB 10.4 changelog https://mariadb.com/kb/en/library/mariadb-1040-changelog/

性能提升

由于字节长度的关系,通常情况下 Unicode 字符集的性能比其他字符集比如 latin1 低。 MySQL8.0 在这方面有了很大改进。在这方面, MariaDB 10.4 10.3 也快很多。现在人们越来越喜欢使用 emojis 图,这些图需要 utf8 字符集进行存储,所以这是一个相当重要的改进。由于现在可以将条件下推到物化子查询中,所以 MariaDB 10.4 IN() 子查询中效率更高。 依赖于 redo log 的大小,启动和关闭 InnoDB 会花费一段时间。 MariaDB 对启动、关闭、 purge 进行了改进。鉴于 mariabackup xtrabackup 热备工具的普及,这些改进尤为重要。最终,这些工具涉及 InnoDB shutdown (回放 redo log 时)到启动恢复,因此这些领域的改进大大减少了转储备份的时间。

InnoDB改进

MariaDB 10.4 已经可以进行瞬时 DROP CLOLUMN 操作。不需重新构建表,可以对表的列重新排序。我们不能强调这是多么重要。你可能想知道在生产环境中最常见的操作是什么?添加和删除索引尤为重要。另外一个常见操作时添加新列或者删除索引。目前为止,最常用的方法是使用外部工具进行操作: pt-online-schema-change gh-ost 。两个工具都有限制(比如, gh-ost 不能在 Galera Cluster 中使用)。尤其棘手的是表具有外键时也会有很大限制。瞬时 ADD COLUMN 已经可用,通过瞬时 DROP COLUMN schema 可以进行更改。这些瞬时操作也是我们所需。像创建索引, schema 可以进行非阻塞更改,但是当使用复制时,这些操作有了很大挑战。因此即使在生产环境中可以执行这些操作,我们建议还是使用 pt-online-schame-change Varchar 列的扩展将变得更快,非索引列上额外字符集和排序规则的改变也将成为瞬时操作。

一般性改变

另外一个最大的改变在用户管理方面。 mysql.host 表不再使用并不再创建。用户的账户和全局权限将存到 mysql.global_priv 表中。对于通过选项管理 MySQL MariaDB 用户的工具来说,这些改变很重要。 10.4 之前的版本,需要重写涉及用户管理的案例。我们承认确实需要改动这些地方,但是这对于维护 MariaDB MySQL 工具来说毫无帮助。在用户管理方面, MariaDB 10.4 有一个选项控制过期用户密码。这绝对是向好的方向迈开重要的异步 ---- 有助于更好的实施密码管理。 最后, 10.4 版本中,可以设置 sql_mode=MSSQL 。这是一个初始实现,但在某点上 sql_mode=ORACLE 也是初始实现。这表明了 MariaDB 对企业用户的关注 -- 随着新增越来越多的特性和迁移问题越来越少,越来越多的用户可以从 Oracle Microsoft SQL Server 迁移到 MariaDB

MariaDB分支

最近看到一篇博客解释 MariaDB InnoDB 改进和兼容性方面的观点。主要是 MariaDB 不再从 MySQL 合入 InnoDB 新特性,将关注稳定性和性能的提升。也就是说 MariaDB 不再兼容 MySQL 。像 mysqldumper/mysqlloader 逻辑备份工具将成为迁移的唯一工具。庆幸的是, MariaDB 有能力维护他自己的 InnoDB 分支。 性能方面,从历史数据上看, MariaDB 集成的 InnoDB 性能有所提升。 对用户来说, MariaDB10.4 将比之前的 release 版本更加稳定。这也意味着,我们需要学习两种不同的存储引擎内核 -- 尤其是性能方面的改动。需要开发工具支持 InnoDB 不同版本。我们会关注这方面的进程。随着引入越来越多不兼容的特性以及 mysql8.0 的很大改动,关注开发的新功能才有意义而不是兼容 MySQL

原文

https://severalnines.com/blog/whats-new-mariadb-104

相关推荐