SQL长事务是数据库稳定性的隐性威胁,会持续加剧锁冲突、Undo日志膨胀、主从延迟、资源耗尽等多维度风险,最终引发连锁故障。

SQL长事务不是“慢一点而已”,而是数据库稳定性的隐性威胁。它不一定会立刻报错,但会在锁、日志、内存、复制等多个层面持续施压,最终引发连锁反应。
锁资源长期占用,导致并发阻塞
事务一旦开始修改数据(如UPDATE、DELETE),InnoDB就会加行锁或间隙锁;只要没提交或回滚,锁就一直挂着。
- 其他事务想改同一行?得排队等——写阻塞写
- 在REPEATABLE READ下做SELECT ... FOR UPDATE?也可能被阻塞——写阻塞读
- 若长事务期间有人执行ALTER TABLE,还会卡住MDL元数据锁,让整张表的DDL操作动弹不得
Undo Log膨胀,拖慢MVCC与磁盘空间
Undo日志用于回滚和快照读。长事务存在时,系统不敢清理它依赖的历史版本。
标签: red
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~