mysql查詢mdl鎖,對表增加分區為什么出現Waitingfortablemetadatalock?
Waiting for table metadata lock 是MySQL5.5中,你對表進行DDL操作,但仍然有打開事務訪問過此表(5.5.3之后MDL基于事務)。 所以找到這個打開事務的session,讓所有把它rollback/commit,或者直接kill掉它就可以了。 至于找的方法,show engine innodb statusG的Transactions節去找,那些連接的事務打開超過了你修改分區表的操作的25313秒。
還有如果DDL處于Waiting for table metadata lock ,之后此表上所有的操作都會被阻塞,包括一致性讀取。