背景
测试mysql5.7和mysql8.0分别在读写、只读、只写模式下不同并发时的性能(tps,qps)
前提
测试使用版本为mysql5.7.22和mysql8.0.15sysbench测试前先重启mysql服务,并清空os的cache(避免多次测试时命中缓存)每次进行测试都是新生成测试数据后再进行mysql5.7和mysql8.0的测试每次测试时保证mysql5.7和mysql8.0的配置参数一致环境
机器
myql5.7.22
mysql8.0.15
sysbench
测试
在不同的持久化策略下(binlog,redolog持久化)mysql5.7和mysql8.0在读写模式、只读模式、只写模式(oltp_read_write,oltp_read_only,oltp_write_only)下的性能表现sysbench测试时间为60s,测试的表数量为20测试分别在双1模式(安全性)和02模式(高性能)下进行
双1模式下
mysql5.7和mysql8.0在只读模式下的表现
双1配置,只读模式下,mysql5.7.22的tps、qps比mysql8.0.15好1/3左右;并发线程数增加后,tps、qps并没有随着增加,反而出现了下降的趋势。mysql5.7和mysql8.0在只写模式下的表现
双1配置,只写模式下,随着并发数的上升,mysql5.7.22的性能比mysql8.0.15好1/4左右。02模式下
mysql5.7和mysql8.0在读写模式下的表现
02配置,读写模式下,并发数低时,mysql5.7.22性能好于mysql8.0.15;并发数比较高时,mysql8.0.15性能好于mysql5.7.22;在80线程的并发以上时,性能开始下降。mysql5.7和mysql8.0在只读模式下的表现
02配置,只读模式下,mysql5.7.22性能比mysql8.0.15好1/3左右;随着并发数的上升,性能也没有上升,反而有下降的趋势.mysql5.7和mysql8.0在只写模式下的表现
02配置,只写模式下,mysql5.7.22的tps抖动比较大;mysql5.7.22的qps比mysql8.0.15好1/3左右结论
整体来看,mysql5.7.22在读写模式、只读模式、只写模式下的表现是优于mysql8.0.15的随着并行数的增加,性能表现不会也跟着增加,还会出现下降本次测试结果是在配置很低的情况下进行的,不代表绝对注意
sysbench需要设置--db-ps-mode=disable禁用预编译语句,不然并发测试线程多时会报下面的错误
使用脚本