MariaDB 和 GreatSQL 性能差异背后的真相
前言
最近项目上遇到了两次 MariaDB 和 GreatSQL 的对比,GreatSQL受到客户质疑,最后经过排查抓到性能差异背后的真相。基于此做个分享。
版本
MariaDB版本:10.3.39 该版本为麒麟V10 yum安装
GreatSQL版本:GreatSQL-8-0-32-25
问题一:MariaDB和GreatSQL使用sysbench压测性能相差100倍
某天某客户反馈他们的sysbench压测结果,MariaDB 和 GreatSQL 压测性能相差100倍。
信息收集
架构:均为单机
版本如上文版本所示
配置文件:MariaDB yum安装后/etc/my.cnf 未曾更改
GreatSQL配置文件为GreatSQL用户手册中的配置文件链接如下:
https://GreatSQL.cn/docs/8.0.32-25/3-quick-start/3-4-quick-start-with-cnf.html
两者在同一台机器上轮流运行(即开启MariaDB时关闭GreatSQL,开启GreatSQL时关闭MariaDB)
ps:没收集硬件信息是因为都是运行在麒麟V10上,相同规格硬件运行,这部分已经排除影响。
思考
遇到这么夸张的性能差距,第一反应是innodb_buffer_pool,binlog开关,sync_binlog 和 innodb_flush_log_at_trx_commit这几个和性能关系较大的参数
复现测试
MariaDB 10.3.39 安装
$ yum -y install MariaDB
$ yum -y install MariaDB.server
#启动MariaDB
$ systemctl start MariaDB
#查看MariaDB的状态
$ systemctl status MariaDB
查看相关参数
# 登录,初始化首次登录MariaDB的密码为空
$ mysql -uroot -p -S /var/lib/mysql/mysql.sock
#查看binlog
MariaDB [(none)]> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | OFF |
+---------------+-------+
1 row in set (0.003 sec)
# 查看sync_binlog
MariaDB [(none)]> show variables like 'sync_binlog';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| sync_binlog | 0 |
+---------------+-------+
1 row in set (0.002 sec)
# 查看innodb_flush_log_at_trx_commit
MariaDB [(none)]> show variables like '%trx_commit%';
+

最低0.47元/天 解锁文章
507

被折叠的 条评论
为什么被折叠?



