长事务风险
- 占用 MVCC 版本,造成版本堆积,Region 扫描变慢,CPU、内存上涨。
- 锁持有时间久,容易锁冲突、死锁,阻塞业务 DML。
- 阻碍 GC,旧快照无法回收,存储空间膨胀。
- 事务未提交会占用乐观锁的事务 ID,影响全局 TSO 推进。
生产管控手段
- 设置 tidb_max_transaction_size、tidb_long_trx_threshold 告警阈值,监控告警长事务。
- 开启 tidb_gc_life_time 合理 GC 窗口,避免过大。
- 业务拆分大事务,拆成分批小事务;禁止业务交互式长事务。
- 系统变量 tidb_max_execution_time 限制 SQL 执行时长。
- 监控 information_schema.tidb_trx,及时发现并 kill 异常长事务。