TiDB 5.4 升级 7.1 后大量报 1205 锁等待超时

集群从 5.4 升级到 7.1,业务代码、并发量未改动,原乐观事务运行稳定,升级后频繁出现 1205 Lock wait timeout 错误。切换为悲观锁后问题有所缓解,但仍大量报错,怀疑事务冲突检测、锁机制有变更,求教优化方案。

1 个赞

迁移升级建议先在小规模环境做充分的兼容性测试,特别是SQL语法、自增主键、事务隔离级别这几个方面。如果是分库分表迁移,要注意全局唯一ID的生成方式,推荐用 AUTO_RANDOM 替代自增主键。

  • 隔离级别改 RC,关闭间隙锁;
  • 缩短事务,拆分长 SQL,避免事务内大查询;
  • 乐观锁加重试机制,控制单次事务执行时长;
  • 统一更新顺序防循环等待,精准走唯一索引更新;
  • 调大innodb_lock_wait_timeout临时缓冲;
  • 热点行做分片、队列削峰分摊竞争。

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。