atitit查询表改动表字段没反应--解锁锁定的表



查询表改动表字段没反应



要是使用gui 没反应,最好使用cmd 方式,不卉不个gui 锁上..

ALTER TABLE t_mb_awardweixin  MODIFY  awardChoiceNumLeft int(11) DEFAULT NULL



#-----分析..



1.首先,查询by还有一个表格,  要是能查询,显示不是max conn的问题..或许表格锁定了..

2. 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。须要特别慎重,否则。easy造成MDL等待,导致连接耗尽或者拖垮Server



參考

mysql出现Waiting for table metadata lock的原因及解决方式 - mysql数据库栏目 - 红黑联盟.htm

imptt 初步认知MySQL metadata lock(MDL) - DBA@DevOps - 博客频道 - CSDN.NET.htm

atitit查询表改动表字段没反应--解锁锁定的表的更多相关文章

  1. atitit查询表修改表字段没反应--解锁锁定的表

    atitit查询表修改表字段没反应--解锁锁定的表 查询表修改表字段没反应 要是使用gui 没反应,最好使用cmd 方式,不卉不个gui 锁上.. ALTER TABLE t_mb_awardweix ...

  2. Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查

    本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...

  3. 使用SQL语句查询表及表字段类型说明

    今天突然遇到有人要数据库表及表字段说明,数据库表太多又不能一个个表去找,就想想SQL是否能直接查询出来. 经过查询资料,加上一些自己的一些调整写了一个sql语句,在此记录一下,以方便日后查找使用. S ...

  4. MySQL查询表与表字段的信息

    环境: Mysql数据库 库名:db_name 表名: table_name1 table_name2 查询一个里面所有表的信息: use information_scheam; select * f ...

  5. sql查询表的所有字段和表字段对应的类型

    1.查询表的所有字段 select syscolumns.name from syscolumns where id=object_id('写上要查询的表名') 2.查询表的所有字段+表字段对应的类型 ...

  6. tp数据表字段缓存

    在维护一个tp写的项目,因为需要在产品表product中增加了一个字段status,但是不论如何就是无法给status赋值,查了资料才发现,原来是tp的数据表字段缓存在搞鬼. 在runtime> ...

  7. 为了解决mysqlbing翻译表字段问题而分析frm文件(持续更新)

    出处:kelvin19840813 的博客 http://www.cnblogs.com/kelvin19840813/ 您的支持是对博主最大的鼓励,感谢您的认真阅读.本文版权归作者所有,欢迎转载,但 ...

  8. MySQL修改表字段相关信息

    昨天收获颇多,首先回顾一下有关mysql的内容. 我在查询表信息时,出现了 empty set 0.00 sec 的错误,我很奇怪,仔细检查发现原来是表字段名称写错了, 于是我想修改字段名称,经过查询 ...

  9. day38 mycql 初识概念,库(增删改查),表(增删改)以及表字段(增删改查),插入更新操作

    在Navicat中把已经生成的表逆向成模型 数据库上,右键-逆向数据库到模型 ego笔记: 增删改查 文件夹(库) 增 create database day43 charset utf8; 改 al ...

随机推荐

  1. POJ2782:Bin Packing

    Description   A set of n<tex2html_verbatim_mark> 1-dimensional items have to be packed in iden ...

  2. StackOverFlow的2016统计

    http://stackoverflow.com/research/developer-survey-2016

  3. C++运算符重载的方法

    运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算.也就是说,运算符重载是通过定义函数实现的. 运算符重载实质上是函数的重载 重载运算符的函 ...

  4. 利用PS滤镜及图层叠加制作水墨荷花

    水墨荷花制作思路并不复杂:把图片转为黑白,用滤镜等增加水墨纹理即可.不过在处理的时候还有很多细节需要处理,如图片的背景,水墨纹理控制范围等,这些需要自己慢慢摸索. 原图 最终效果 1.打开素材图片,把 ...

  5. 经常使用MD5算法代码

    经常使用的MD5算法代码日期: 2014年8月4日作者: 铁锚 MD5,全称为 Message Digest Algorithm 5(消息摘要算法第五版).详情请參考 维基百科:MD5  MD5加密后 ...

  6. 让工程师爱上CMM,实现管理于无形 --- 中标软件CMMI L5之路 (2/2)

    上节:见 http://blog.csdn.net/sztiger168/article/details/9142069 使用 青铜器RDM在2011年正式在中标软件上线,将研发业务全面流程化,完全支 ...

  7. css怎样使顶端悬浮导航栏不遮住下面一层页面内容

    在两个层之间加这个<span class="blank" style="height:20px;"></span>,其中高度可以自己设置 ...

  8. 手动配置S2SH三大框架报错(三)

    十二月 08, 2013 10:24:43 下午 org.apache.catalina.core.AprLifecycleListener init 严重: An incompatible vers ...

  9. 回文(manacher)

    裸manacher 我竟然写跪了………… 一个地方(偶数)没写清楚…… 我OOXOXOXOXXOXO #include<cstdio> #include<cstdlib> #i ...

  10. 浅谈mapreduce程序部署

    尽管我们在虚拟机client上能非常快通过shell命令,进行运行一些已经封装好实例程序,可是在应用中还是是自己敲代码,然后部署到server中去,以下,我通过程序进行浅谈一个程序的部署过程. 在启动 ...