mysql 大事务 ✅MySQL执行大事务会存在什么问题?

文章浏览阅读389次,点赞5次,收藏5次。之前在如何实现百万级数据从Excel导入中有提到一句不建议利用大事务进行一个错误处理。为什么不建议呢。本次来简单说一下。

前言

之前在如何实现百万级数据从Excel导入中有提到一句不建议利用大事务进行一个错误处理。为什么不建议呢。本次来简单说一下。

实现百万级数据从Excel导入的文章:

实现百万级数据从Excel导入到数据库的方式

image.png

所谓大事务,通常指包含大量要执行的SQL语句和较长执行时间的事务。

这样的大事务往往会带来诸多问题。如下:

占用数据库连接:这一点很好理解。随着SQL语句的增多,执行时间也会相应延长。大型事务会持续占用数据库连接,由于数据库连接资源有限,长时间占用可能导致其他事务无法获取连接,从而降低系统的吞吐量,影响系统的可用性。

难以回滚:大事务涉及的数据量较大,回滚操作可能变得异常耗时。若事务需要回滚或失败,可能需要花费大量时间才能完全撤销所有修改,对数据库的可靠性和性能造成不利影响。

锁竞争:大事务可能引发繁琐的写操作,导致数据的锁定。这可能导致其他并发事务在访问相同资源时遭遇锁竞争,进而造成性能下降和延迟增加。长时间的锁定还可能导致其他事务的等待和阻塞。

日志空间占用:大事务可能产生大量日志,特别是 binlog。当单个事务超出最大允许的Binlog文件大小限制(max_binlog_cache_size),会出现错误:Multi-statement transaction required more than ‘max_binlog_cache_size’ bytes of storage; increase this mysqld variable and try again

解决方案:

拆分事务,将大事务分解为多个小事务。将不需要在事务中执行的操作(如读取、内存计算、I/O操作、远程调用等)移到事务外部处理。

如有问题,欢迎加微信交流:w714771310,备注- 技术交流 。或微信搜索【码上遇见你】。

免费的Chat GPT可微信搜索【AI贝塔】进行体验,无限使用。

好了,本章节到此告一段落。希望对你有所帮助,祝学习顺利。

原创文章,作者:筱凯,如若转载,请注明出处:https://www.jingyueyun.com/ask/309.html

(0)
筱凯筱凯
上一篇 2024 年 7 月 11 日
下一篇 2024 年 7 月 11 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

云产品限时秒杀。精选云产品高防服务器,500M大带宽限量抢购  >>点击进入