MariaDB 10.5与MySQL 8.0的比较

2024年4月2日14:08:26MariaDB 10.5与MySQL 8.0的比较已关闭评论

下面我们从性能、安全和功能等方面对MariaDB和MySQL这两个数据库进行对比,并列举出在选择数据库时需要慎重考虑的事项。

1 存储引擎

除了包含标准的InnoDB、MyISAM、BLACKHOLE、CSV、MEMORY、ARCHIVE和MERGE存储引擎之外,MariaDB 10.5还额外提供了以下存储引擎。

□ColumnStore:大规模并行分布式计算MPP数据架构,专为大数据扩展而设计,用于分析PB级的数据。

□MyRocks:具有出色压缩性能的存储引擎(由于TokuDB已经被Percona废弃,因此推荐使用MyRocks)。

□Aria:在处理内部的临时表时,用Aria引擎代替MyISAM引擎,可以使某些GROUP BY和DISTINCT请求的速度更快,因为相较于MyISAM, Aria的缓存机制更好。

□Spider:水平分片存储引擎(TSpider是基于MariaDB 10.3.7上的开源存储引擎Spider定制研发的,它是腾讯游戏场景中规模最大的分布式MySQL存储引擎)。

2 扩展和新功能

MariaDB对服务层做了大量改进,增加了很多新的特性,如果一个补丁或功能是有用的、安全的、稳定的,那么MariaDB官方就会尽一切努力在MariaDB发行版中加入它。

MariaDB最显著的功能列举如下(MySQL里没有这些功能)。

□集成了Galera Cluster高可用集群插件,能够保证数据不丢失。

□系统版本表能有效防止因误删除或误更改而导致的数据丢失,它里面存储了所有更改的历史数据,而不仅仅是当前时刻的有效数据。例如,同一行数据一秒内被更改了10次,那么系统版本表中就会保存10份不同时间的版本数据。

□mysqlbinlog增加了闪回功能(仅支持在DML语句INSERT、DELETE、UPDATE上闪回)。

□“SQL_MODE=ORACLE”支持Oracle的PL/SQL。

□隐藏列将不会出现在“SELECT*”语句的结果中。

□动态列支持以JSON格式存储数据(注意,这里动态列的实现方式与MySQL 5.7的不一样)。

□半同步复制插件内置在MariaDB服务器中,并且不再以插件的方式提供。这就意味着不用再通过“INSTALL SONAME 'semisync_master'”和“INSTALL SONAME 'semisync_slave'”的方式来安装插件了。

□支持EXCEPT、INTERSECT语法。

□对CREATE OR REPLACE TABLE和CREATE OR REPLACE DATABASE语法进行了扩展。

□DELETE语句支持数据回滚功能,可以将单个表中已删除行的结果集返回给客户端。

□INFORMATION_SCHEMA.PROCESSLIST表中添加了一个额外的列TIME_MS,用于查看毫秒时间。

□支持虚拟列(函数索引)。

□对kill命令进行了扩展,可以指定杀死某个user用户的所有查询(例如“kill user hechunyang”)。

□支持基于表的组提交并行复制(注意,这里的实现方式与MySQL 5.7的不一样)。

□二进制日志支持压缩功能,可以通过设置log_bin_compress参数启用事件的DML/DDL语句压缩。

□修改表结构时可以显示执行进度。

□慢查询日志里增加了执行计划。

  • A+
所属分类:SQL
  • 版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。