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. 百度地图SDK for Android v2.1.2全新发布

    2013年6月20日 Android SDK:V2.1.2产品上线 新增: 自定义指南针位置(类:MapController,方法:setCompassMargin) 自定义当前位置图标(类:MyLo ...

  2. JS - 提示是否删除

    1. OnClientClick="return confirm('确定要删除吗?') 2.自定义函数: 函数: <script type ="text/javascript ...

  3. Passenger/Nginx/Debian快速部署Rails

    安装所需的linux包 sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl gi ...

  4. poj1189 简单dp

    http://poj.org/problem?id=1189 Description 有一个三角形木板,竖直立放.上面钉着n(n+1)/2颗钉子,还有(n+1)个格子(当n=5时如图1).每颗钉子和周 ...

  5. Git 图解剖析(转)

    git中文件内容并没有真正存储在索引(.git/index)或者提交对象中,而是以blob的形式分别存储在数据库中(.git/objects),并用SHA-1值来校验. 索引文件用识别码列出相关的bl ...

  6. 14.6.1 Creating InnoDB Tables 创建InnoDB 表:

    14.6.1 Creating InnoDB Tables 创建InnoDB 表: 创建一个InnoDB 表,使用CREATE TABLE 语句,你不需要指定 ENGINE=InnoDB子句 如果In ...

  7. Eclipse插件引入jar包的方法(转)

    搞了两天,终于找到解决办法了.原来  Eclipse 插件项目引入外面的jar包不能用   build path---->add external jars的方法. 先说明两个概念:类加载器,O ...

  8. Automatic logon configuration on Linux OS

    Automatic logon configuration on Linux OS 1. Regarding to DSA: a) ssh-keygen -t dsa  b) cat ~/.ssh/i ...

  9. UpdataData

    MFC中有一个UpdataData函数,有二个参数:TRUE和FLASE,二个参数什么时候用, 开始的时候我也迷糊,后来才发现: UpdataData(TRUE):是把控件上的值刷新到变量中: Upd ...

  10. thinkphp 3.2.3 入门示例2(URL传参数的几种方式)

    原文:thinkphp中URL传参数的几种方式 在thinkphp中,url传参合asp.net中原理类似,下面就单个参数和多个参数传递方式进行一个简单讲解 1.传单个参数 单个参数这种比较简单,例如 ...