压测数据全记录

MySQL5.5原生版本,sync_binlog 1000 innodb_flush_log_at_trx_commit 2

1. 死锁检测

压测场景:

一个事务里面先insert,再update,insert随意,update对同一条记录更新,并发128,循环10000次

压测结果:

关闭死锁检测tps:5705 打开死锁检测tps:1659,

结论:

在对tps要求比较高的场景中关闭死锁检测很有必要,但是前提是整个涉及的场景中没有死锁,否则的话,关闭死锁检测只会起到相反的作用

2. 备库延迟

压测场景:

尽量让主库的tps高,看主库的tps达到多少时备库开始延迟

压测结果:

主库的tps达到9k以上时,备库开始延迟,主库的tps在9k-1w时,备库的延迟时间在1s之内;主库的tps在1w~1.2w的时候,备库的延迟在100s以内;多实例下也是一样的

 3. innodb表,根据id更新和根据uk更新性能上差异多大

压测背景:

id是主键,uk (iid,sid)

压测结果:

语句:

update a set q=q-0, v=v+1, gmt_modified=now(), rq = CASE WHEN ((rq + 2 ) >= 0 ) then rq + 2 
ELSE 0 END where id=200060000007408609 and iid=9749545200 and sid = 0 and (q - rq - 2) >= 0 and q-0>=0;

结果:

Summary: SQL01 exec=537849, rows=537849=100/e, avg=140840 us
Summary: exec=896/s, qtps=896/s

语句:

update a set q=q-0, v=v+1, gmt_modified=now(), rq = CASE WHEN ((rq + 2 ) >= 0 ) then rq + 2 

ELSE 0 END where iid=9749545200 and sid = 0 and (q - rq - 2) >= 0 and q-0>=0;
结果:
Summary: SQL01 exec=633689, rows=633689=100/e, avg=147471 us
Summary: exec=768/s, qtps=768/s

结论:

如果可以尽量使用id更新吧

4. 两套同样的写语句放到事务里和不放到事务里性能相差多大?

事务版本

1024个并发

insert a exec=23592, rows=23592=100/e, avg=420 us
update b exec=25600, rows=25600=100/e, avg=91622 us
Summary: exec=2599/s, qtps=5182/s

伪事务版本

insert a exec=23556, rows=23556=100/e, avg=652 us

update b exec=25600, rows=25600=100/e, avg=37346 us

Summary: exec=6624/s, qtps=12867/s

事务版本是伪事务版本的一半性能

低压力下出高性能

128个并发

事务版本

insert a exec=11745, rows=11745=100/e, avg=366 us
update b exec=12800, rows=12800=100/e, avg=41315 us--锁时间
Summary: exec=2968/s, qtps=5761/s

伪事务版本

insert a exec=11756, rows=11756=100/e, avg=518 us
update b exec=12800, rows=12800=100/e, avg=14483 us--update锁时间
Summary: exec=8488/s, qtps=16343/s

 

转载于:https://www.cnblogs.com/sunss/p/3163019.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值