MySQLatitit查询表修改表字段尚未影响–解锁锁定的表明

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

查询表修改表字段尚未反应

如用gui 没反应,最好以cmd 方式,不卉不孤gui 锁上..
ALTER TABLE t_mb_awardweixin  MODIFY  awardChoiceNumLeft int(11)
DEFAULT NULL

#—–分析..

1.首先,查询by另一个报表,  要是能查询,显示不是max
conn的题目..也许表格锁定了..

  1. show full PROCESSLIST  要是看到个Waiting for table metadata lock
     3. 查询锁上之表格.  show OPEN TABLES where In_use > 0;
     
     
    作者 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com
    转载请注明来源: http://blog.csdn.net/attilax

#———原因MDL:::

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

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

 
概述

随着5.5.3引入MDL,更多的Query被“Waiting for table metadata
lock”给’炕’了
SHOW PROCESSLIST的输出为闹前的”Locked”变得粒度更加周密的’Waiting for
table metadata lock’
引入MDL,当需要拜访、修改表结构时,都需对元数据上锁(读/写)
MDL在Server层,保护表数据结构,而无数据我。Server比之前版本繁忙多了

MDL意味着DDL,一旦DDL被死,那么面向该表的具有Query都见面吃吊于,包括Select,不过5.6犯了改进,5.5而由此参数控制

3.行使被动用了连续池..但是又如ddl…连接池老是连连start 有些conn,
kill李韩式有全自动启..造成后面儿ddl 不克执行..

 
 
 #—-解决
 1. 设置lock_wait_timeout=50   ,默认1年.. 
仅仅下同样糟时间生效..当前只有kill 才可以缓解..
 2. kill  锁上 conn   ( DDM alter 的query sql)  ,,,,别的query
事务奏能连续兰..
 3. 对付连接池, 可以装timeout自动关闭并接..
但是要是再启生效..要是使用关键,不克还开,可以运用防火墙阻止java进程
访问网络…  批处理kill id ,,
查看转,应该不见面活动连接池连接上了,,,在ddl操作,在放大开…..
 
 
 #—-结论:
以准备alter table tbl
的下,先观察一下,有无起正值周转的,且在缺少日外无法收场之sql语句以操作tbl表
结论:

当需要对”热表”做DDL,需要特别谨慎,否则,容易造成MDL等待,导致连日耗尽或者拖垮Server

参考
mysql出现Waiting for table metadata lock的来头和解决方案 –
mysql数据库栏目 – 红黑联盟.htm
imptt 初步认知MySQL metadata lock(MDL) – DBA@DevOps – 博客频道 –
CSDN.NET.htm

网站地图xml地图