绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
MySQL和MariaDB哪个更好用?
2022-05-07 14:55:55
作者:民工哥
链接:https://www.zhihu.com/question/317864222/answer/1956147306


MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

MariaDB拥有比MySQL更纯正的MySQL血脉。初的版本更新与MySQL同步,相对MySQL5以后的版本,MariaDB也有相应的5.1~5.5的版本。后来MariaDB终于摆脱了MySQL,它的版本号直接从10.0开始,以自己的步伐进行开发,当然,还是可以对MySQL完全兼容。现在,MariaDB的数据特性、性能等都超越了MySQL。



测试环境

本性能测试环境如下:

CPU:I7
内存:8G
OS:Windows 10 64位
硬盘类型:SSD
MySQL:8.0.19
MariaDB:10.4.12

分别在MySQl和MariaDB中创建名为performance的数据库,并创建log表,都使用innodb作为数据库引擎:

CREATE TABLE `performance`.`log`(  
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `time` DATETIME NOT NULL,
  `level` ENUM('info','debug','error') NOT NULL,
  `message` TEXT NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8;

插入性能

单条插入

单条插入的测试结果如下表所示:

MariaDB 单条数据插入的性能比 MySQL 强1倍左右。

批量插入

批量插入的测试结果如下表所示:



上面的测试结果,MariaDB 并没有优势,甚至有时还比 MySQL 慢,但平均水平还是高于MySQL。

查询性能

经过了多次插入测试,我两个数据库里插入了很多数据,此时用下面的sql查询表中的数据量:

SELECT COUNT(
0
) FROM LOG

结果两个表都是6785000条,MariaDB用时3.065秒,MySQL用时6.404秒。此时我机器的内存用了6个G,MariaDB用了474284 K,MySQL只用了66848 K。看来MariaDB快是牺牲了空间换取的。

无索引

先查询一下time字段的大值和小值:

SELECT MAX(TIME), MIN(TIME) FROM LOG

结果:MariaDB用时6.333秒,MySQL用时8.159秒。

接下来测试过滤time字段在0点到1点之间的数据,并对time字段排序:

SELECT * FROM LOG WHERE TIME > 
'2020-02-04 00:00:00'
 AND TIME < 
'2020-02-04 01:00:00'
 ORDER BY TIME

结果:MariaDB用时6.996秒,MySQL用时10.193秒。

然后测试查询level字符是info的数据:

SELECT * FROM LOG WHERE LEVEL = 
'info'

结果:MariaDB用时0.006秒,MySQL用时0.049秒。

后测试查询message字段值为debug的数据:

SELECT * FROM LOG WHERE MESSAGE = 
'debug'

结果:MariaDB用时0.003秒,MySQL用时0.004秒。

有索引

分别对两个数据库的字段创建索引:

ALTER TABLE `performance`.`log`   
  ADD  INDEX `time` (`time`),
  ADD  INDEX `level` (`level`),
  ADD FULLTEXT INDEX `message` (`message`);

MariaDB用时2分47秒,MySQL用时3分48秒。再用上面的测试项目进行测试,结果如下表所示:

有些结果添加了索引后还不如不加索引时理想,说明实际使用时并不是每个字段都需要添加索引的。

总结

在上面的测试中MariaDB的性能的确优于MySQL,看来各大厂商放弃MySQL拥抱MariaDB还是非常有道理的。

分享好友

分享这个小栈给你的朋友们,一起进步吧。

MariaDB
创建时间:2022-03-01 11:18:54
MariaDB
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • itt0918
    专家
戳我,来吐槽~