事务实战避坑要点
- 长事务长期占锁,容易拖垮整库并发,记得尽快 COMMIT
- 大事务拆小,分批提交,避免 undo 日志暴涨
- 事务里尽量别穿插 DDL,它会隐式提交并结束当前事务
- 更新务必带 WHERE 且走索引,否则锁住大片行
- 读多写少用快照读,减少锁竞争
- 连接断开未提交的事务会被回滚,别依赖中途状态
事务实战避坑对照
| 常见坑 | 后果 | 正确姿势 |
|---|---|---|
| 长事务占锁 | 并发被拖垮 | 尽快 COMMIT |
| 事务里套 DDL | 隐式提交丢上下文 | DDL 挪到事务外 |
| 更新无索引 | 锁住大片行 | WHERE 走索引 |
| 漏写 COMMIT | 改动一直挂起 | 异常分支也收尾 |
避坑提醒:一条经验:事务里只放必要的写操作,查询前置、提交从快,能砍掉一半锁等待问题。