公司使用的mysql 是阿里云的polardb
**
1.Waiting for table metadata lock
**
MySQL在进行alter table等DDL操作时,Waiting for table metadata lock等待场景,而且长时间的在锁等待队列中
主要有以下原因
场景一:有其他长事务运行,阻塞DDL,继而阻塞所有同表的后续操作
处理方法: kill 掉 DDL所在的session.
场景二:还存在部分未提交事务,阻塞DDL,继而阻塞所有同表的后续操作
处理方法:通过 select * from information_schema.innodb_trx\G, 找到未提交事物的sid, 然后 kill 掉,让其回滚。
场景三: 还存在没有释放所得其他事务
从performance_schema.events_statements_current表中可以查到失败的语句。
参考说明
https://www.cnblogs.com/digdeep/p/4892953.htm