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/mysql
因为字节长度的关系,一般状况下Unicode字符集的性能比其余字符集好比latin1低。MySQL8.0在这方面有了很大改进。在这方面,MariaDB 10.4比10.3也快不少。如今人们愈来愈喜欢使用emojis图,这些图须要utf8字符集进行存储,因此这是一个至关重要的改进。因为如今能够将条件下推到物化子查询中,因此MariaDB 10.4在IN()子查询中效率更高。sql
依赖于redo log的大小,启动和关闭InnoDB会花费一段时间。MariaDB对启动、关闭、purge进行了改进。鉴于mariabackup和xtrabackup热备工具的普及,这些改进尤其重要。最终,这些工具涉及InnoDB shutdown(回放redo log时)到启动恢复,所以这些领域的改进大大减小了转储备份的时间。异步
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。ide
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在InnoDB改进和兼容性方面的观点。主要是MariaDB再也不从MySQL合入InnoDB新特性,将关注稳定性和性能的提高。也就是说MariaDB再也不兼容MySQL。像mysqldumper/mysqlloader逻辑备份工具将成为迁移的惟一工具。庆幸的是,MariaDB有能力维护他本身的InnoDB分支。开发工具
性能方面,从历史数据上看,MariaDB集成的InnoDB性能有所提高。code
对用户来讲,MariaDB10.4将比以前的release版本更加稳定。这也意味着,咱们须要学习两种不一样的存储引擎内核--尤为是性能方面的改动。须要开发工具支持InnoDB不一样版本。咱们会关注这方面的进程。随着引入愈来愈多不兼容的特性以及mysql8.0的很大改动,关注开发的新功能才有意义而不是兼容MySQL。blog