atitit查询表修改表字段没影响–解锁锁定的表

atitit查询表修改表字段没反应–解锁锁定的表

一.率先,查询by另一个表格,  借使能查询,突显不是max
conn的主题素材..可能表格锁定了..

查询表修改表字段没影响

#———原因MDL:::

万1使用gui 没反应,最棒使用cmd 格局,不卉不个gui 锁上..
军事联盟,ALTER TABLE t_mb_awardweixin  MODIFY  awardChoiceNumLeft int(11)
DEFAULT NULL

当须要对”热表”做DDL,须求专门小心,不然,轻巧产生MDL等待,导致连日耗尽恐怕拖垮Server

3.采纳中运用了连年池..然则又要ddl…连接池老是连接start 有些conn,
kill李韩式有机动起初..产生前边儿ddl 不能够实践..

参考
mysql出现Waiting for table metadata lock的缘故及化解方案 –
mysql数据库栏目 – 红黑联盟.htm
imptt 开端认知MySQL metadata lock(MDL) – DBA@DevOps – 博客频道 –
CSDN.NET.htm

#—–分析..

MDL意味着DDL,一旦DDL被封堵,那么面向该表的兼具Query都会被挂起,包括Select,可是5.陆作了创新,5.5可经过参数调节

在insert into t select * from share 运营时, 同时试行alter table t add
index(play_count),
alter table语句会Waiting for table metadata lock, 直到insert into …
select 语句停止。

 
 
 #—-解决
 1. 设置lock_wait_timeout=50   ,暗许1年.. 
仅仅下1遍时间生效..当前唯有kill 才方可缓解..
 二. kill  锁上 conn   ( DDM alter 的query sql)  ,,,,别的query
事务奏能三番五次兰..
 三. 对付连接池, 可以设置timeout自动关闭连接..
但是要重启生效..假设利用重要,无法重启,能够采纳防火墙阻止java进度访问互连网…  批处理kill id ,,
查看一下,应该不会自动连接池连接上了,,,在ddl操作,在松手…..
 
 
 #—-结论:
在准备alter table tbl
的时候,先侦查一下,有未有正在运作的,且在长期内不可能收场的sql语句在操作tbl表
结论:

  1. show full PROCESSLIST  倘诺看到个Waiting for table metadata lock
     3. 查询锁上的表格.  show OPEN TABLES where In_use > 0;
     
     
    小编 老哇的爪子 Attilax 艾龙,  EMAIL:14665一9八四九@qq.com
    转发请表明来源: http://blog.csdn.net/attilax

 
概述

随着5.5.3引入MDL,更多的Query被“Waiting for table metadata
lock”给’炕’了
SHOW PROCESSLIST的出口也有此前的”Locked”变得粒度更细的’Waiting for
table metadata lock’
引进MDL,当须要拜访、修改表结构时,都急需对元数据上锁(读/写)
MDL在Server层,尊崇表数据结构,而非数据自身。Server比在此之前版本繁忙多了

一个没提交的作业使用了A表, 别的3个session 对A表展开alter,出现waiting
for table metadata lock

admin

网站地图xml地图