浅谈MYSQL数据库大事务性能问题

      在实践中MYSQL数据库大事务(即扫描行数大小)高会引发性能问题。

     事务是一个最小的不可在分的工作单元;通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务是一个最小的工作单元)

     一个完整的业务需要批量的DML(insert、update、delete)语句共同联合完成。

     事务的特征:

通常相关指标为单次执行影响行数不得超过100000,总执行次数不得超过200次。

单次执行影响行数超过100000,总执行次数超过200次。增删改操作会生成UNDO LOG,大量数据操作将生成大量的UNDO LOG,所在表上的其他查询及DML也将会受到影响,尤其是大事务发生回滚将会耗时漫长,严重影响业务。同时SQL语句影响行数过多,容易造成从库延迟过大,甚至无法追平主库;更新记录时间长,锁持有时间长,容易引发行级锁阻塞;

     解决方案:进行记录控制,减少DML影响行数。对于高并发表的记录更新,单次更新10万行的还是太大了,建议将单事务更新控制在1000行以内,单事务更新时间控制在1秒以内。

  更多内容请关注公众号“测试小号等闲之辈”~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值