MySQL出现"Waiting for table metadata lock"异常的解决方法
作者:OpenWorld
时间:2023-05-07
浏览:1
1.出现原因当对某个表执行DDL语句时,将会自动给此表加上mdl元数据write锁,直到事务提交才会释放。此锁的作用是为了保护表结构的完整性、元数据的一致性。2.处理方式模式一下生产环境如下图所示:sessionA开启了一个事务并且执行DQL此时sessionB需要对该表的两个字段添加全文索引执行后发现一直卡主查看相关的进程列表发现一直在等待获取mdl元数据锁select*frominformation_schema.processlistwhereinfolike'%altertable`bas
1. 出现原因
当对某个表执行DDL 语句时,将会自动给此表加上 mdl 元数据write 锁,直到事务提交才会释放。此锁的作用是为了保护 表结构的完整性、元数据的一致性 。
2. 处理方式
模式一下生产环境 如下图所示 : session A 开启了一个事务 并且执行DQL

此时 session B 需要对该表的两个字段添加全文索引

执行后发现一直卡主

查看相关的进程列表 发现一直在等待获取 mdl 元数据锁
select * from information_schema.processlist where info like '%alter table `bas_business_type_text` %'

查看表锁情况 可以看到读写锁互斥了
SELECT * FROM sys.schema_table_lock_waits

据提示执行 kill 11

可以看到session B 立马执行成功

作者最新文章
WPS 表格怎么套用内置表格样式
2026-10-08 14:05
photoshop工具有哪些 photoshop工具详细介绍
2026-09-29 11:05
三星 Galaxy A08 渲染图曝光:Helio G99 芯片与 6000mAh 电池配置解析
2026-09-08 17:14
OPPO Find X10 Pro Max 影像规格详解:三颗2亿像素镜头与全焦段8K视频能力
2026-09-08 16:41
PDF转HTML在线转换器怎么选?转换后网页排版怎么查?
2026-09-04 11:02
下一篇:
Java怎么实现判空
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































