What's New in MariaDB 10.4

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

本文分享自微信公众号 - yanzongshuaiDBA(gh_c4ea334d373f),作者:yzshover

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PostgreSQL备机checkpoint

    数据库异常关闭时,数据库关闭时来不及或者没机会做checkpoint,则需要从上一个一致性检查的开始恢复。

    yzsDBA
  • NOW()会返回时区信息

    执行NOW()函数获取当前时间时,可以获得日期和服务器所在的时区。很多服务器运行在UTC/GMT,如果用户也使用UTC/TMT,一切都会正常,但是一旦出现时区不...

    yzsDBA
  • 基于PMEM的PG数据库Memhive白皮书

    PG是一个广泛应用的开源数据库,从财务管理、地理信息、水务系统到气象服务等等。可部署在本地,也可以部署在云上。PG不仅在事务处理中有强大能力,也支持分析型的复杂...

    yzsDBA
  • 最全的CentOS MariaDB入门教程

    MariaDB是流行的跨平台MySQL数据库管理系统的分支,被认为是MySQL 的完全替代品。MariaDB是由Sun在Sun Microsystems合并期间...

    吴凌云
  • 如何在 CentOS 8 上安装 MariaDB

    MariaDB 是一个开源的关系型数据库管理系统,向后兼容,可替代 MySQL。它是由 MySQL 的一些原开发者和很多社区成员共同开发的。

    雪梦科技
  • 如何在 Ubuntu 20.04 上安装 MariaDB

    本文最先发布在:https://www.itcoder.tech/posts/how-to-install-mariadb-on-ubuntu-20-04/

    雪梦科技
  • Centos 使用YUM安装MariaDB

    1、在 /etc/yum.repos.d/ 下建立 MariaDB.repo,内容如下: [azureuser@mono etc]$ cd /etc/yum...

    张善友
  • redis 字典的实现

    最近研究了一下redis里面字典的实现,redis作为高效的内存存储而被广泛使用,内部实现的db结构以及多种高效的数据结构,其底层基本上就是靠字典来实现。而其字...

    serena
  • 【干货】关于C/C++中的++i和i++实现机制的探讨

    下面我们通过模仿前置和后置操作符的实现方式,来加深对前置、后置操作符实现原理的理解:

    老九君
  • 增删改查!sql2pandas方法手册

    作为一名数据分析师,利用SQL熟练的取数是一项必备的基础能力。除了SQL以外,Python的pandas也为我们提供了SQL的大多数功能。自从从事算法之后就很少...

    石晓文

扫码关注云+社区

领取腾讯云代金券