MariaDB 和 GreatSQL 性能差异背后的真相

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%';
+
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值