InnoDB

MySQL元数据锁与Online DDL排障实战

241 阅读

MySQL 的 Online DDL 并不意味着完全无锁。即使使用 INSTANT 算法,加字段仍可能等待元数据锁,并把后续查询拖入排队,最终耗尽 Java 服务的共享连接池。本文以 MySQL 8.4 和 InnoDB 为例,通过多会话实验还原阻塞链,结合锁记录、sys 视图与事务信息定位根因,区分变更算法、元数据锁等待和连接获取超时,并给出取消变更、缩短事务、兼容发布与故障演练方法,帮助建立可观测、可中止、可验证的数据库发布流程。