如下表格所示:

session1: session2:
10:30:27 root@localhost:[testdb] mysql.sock>select * from t2;
+------+--------+-------+
| id   | course | score |
+------+--------+-------+
|    1 | math   |  NULL |
+------+--------+-------+
1 row in set (0.00 sec)
 
  10:30:20 root@localhost:[testdb] mysql.sock>select * from t2;
+------+--------+-------+
| id   | course | score |
+------+--------+-------+
|    1 | math   |  NULL |
+------+--------+-------+
1 row in set (0.00 sec)

  10:30:24 root@localhost:[testdb] mysql.sock>begin;
Query OK, 0 rows affected (0.00 sec)
10:30:31 root@localhost:[testdb] mysql.sock>begin;
Query OK, 0 rows affected (0.00 sec)
 
10:30:33 root@localhost:[testdb] mysql.sock>alter table t2 drop column score;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0
 
10:30:54 root@localhost:[testdb] mysql.sock>alter table t2 add column score int default 0;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0
 
  10:30:38 root@localhost:[testdb] mysql.sock>select * from t2;
+------+--------+-------+
| id   | course | score |
+------+--------+-------+
|    1 | math   |     0 |
+------+--------+-------+
1 row in set (0.00 sec)
10:31:24 root@localhost:[testdb] mysql.sock>alter table t2 drop column score;
waiting……
 
  10:31:52 root@localhost:[testdb] mysql.sock>commit;
Query OK, 0 rows affected (0.00 sec)
10:31:24 root@localhost:[testdb] mysql.sock>alter table t2 drop column score;
Query OK, 0 rows affected (50.78 sec)
Records: 0  Duplicates: 0  Warnings: 0
 
   

在session2中并没有进行select * from t2 for update,但是session1中的alter出现了等待,而session2在没有进行select * from t2时,session1是可以正常进行alter操作的。(把上面的select * from t2换成select 1 from t2的效果也一样。)
即mysql中的DDL操作需要没有其它线程操作其表时(即使是select也算),才会进行,要不会进行锁等待情况。

mysql DDL时出现的锁等待状态的更多相关文章

  1. mysql DDL 锁表

    mysql DDL 锁表 select trx_state, trx_started, trx_mysql_thread_id, trx_query from information_schema.i ...

  2. MySQL · 引擎特性 · InnoDB 事务锁简介

    https://yq.aliyun.com/articles/4270# zhaiwx_yinfeng 2016-02-02 19:00:43 浏览2194 评论0 mysql innodb lock ...

  3. MySQL ddl丢表

      MySQL ddl丢表: MySQL server层为了和innodb层保持数据一致性,在写binlog和redo log时,引入了两阶段提交,但不同的变更产生的日志并非都使用这种策略. 下面就来 ...

  4. 【数据库】数据库的锁机制,MySQL中的行级锁,表级锁,页级锁

    转载:http://www.hollischuang.com/archives/914 数据库的读现象浅析中介绍过,在并发访问情况下,可能会出现脏读.不可重复读和幻读等读现象,为了应对这些问题,主流数 ...

  5. 转 MySQL中的行级锁,表级锁,页级锁

      对mysql乐观锁.悲观锁.共享锁.排它锁.行锁.表锁概念的理解 转载. https://blog.csdn.net/puhaiyang/article/details/72284702 实验环境 ...

  6. MySQL DDL详情揭露

    前言: MySQL中DDL语句,即数据定义语言,用于创建.删除.修改.库或表结构,对数据库或表的结构操作.常见的有create,alter,drop等.这类语句通常会耗费很大代价,特别是对于大表做表结 ...

  7. MySQL 啥时候用表锁,啥时候用行锁?

    大家好,我是树哥. MySQL Innodb 的锁可以说是执行引擎的并发基础了,有了锁才能保证数据的一致性.众所周知,我们都知道 Innodb 有全局锁.表级锁.行级锁三种,但你知道什么时候会用表锁, ...

  8. MySQL DDL执行方式-Online DDL介绍

    1 引言 大家好,今天与大家一起分享一下 mysql DDL执行方式. 一般来说MySQL分为DDL(定义)和DML(操作). DDL:Data Definition Language,即数据定义语言 ...

  9. MySQL详解--锁

    http://blog.csdn.net/xifeijian/article/details/20313977 2014-03-06 23:45 66484人阅读 评论(17) 收藏 举报  分类: ...

随机推荐

  1. solr python客户端 - solrpy

    solrPy 基础使用: 1)与solr建立连接 import solr s = solr.Solr('http://host:ip/solr/collectionName') 2)查询 r = s. ...

  2. windows7文件共享

    工作组模式下: 参考:http://support.microsoft.com/kb/2533010/zh-cn 1.首先区分网络类型配置文件:家庭网络,工作网络还是公用网络 2.每种类型区分两种文件 ...

  3. Oracle 11g RAC环境下Private IP修改方法及异常处理

    Oracle 11g RAC环境下Private IP修改方法及异常处理 Oracle 11g RAC环境下Private IP修改方法及异常处理 一. 修改方法 1. 确认所有节点CRS服务以启动 ...

  4. centos7 Linux 尝试使用crontab

    一.安装crontab [root@CentOS ~]# yum install vixie-cron[root@CentOS ~]# yum install crontabs 说明:vixie-cr ...

  5. c++中的&

    变量的前面表示取变量地址赋值给指针, 如:int a = 0; int *pa = &a;类型后面表示引用,引用即变量的替身. int a = 0; int &ref = a;操作re ...

  6. Solr 5.x集成中文分词word,mmseg4j

    使用标准分词器,如图: 使用word分词器 下载word-1.3.jar,注意solr的版本和word分词的版本 将文件word-1.3.jar拷贝至文件夹C:\workspace\Tomcat7.0 ...

  7. window环境下杀死tomcat

    window环境下杀死进程 1.首先查找到占用8080端口的进程号PID是多少(tomcat默认是8080端口,假如你修改了tomcat的监听端口,请输入你的tomcat端口号) netstat -a ...

  8. IBM HTTP Server Performance Tuning

    IBM HTTP Server Performance Tuninghttp://publib.boulder.ibm.com/httpserv/ihsdiag/ihs_performance.htm ...

  9. 初识WEB:输入URL之后的故事【转】

    转载一篇文章,分析的是浏览器输入url后所执行的一系列操作!写得非常清晰易懂,分享给大家! 作者:Jesse 出处:http://jesse2013.cnblogs.com/ 本文版权归作者和博客园共 ...

  10. Visual Studio 2015 开发大量 JavaScript 代码项目程序崩溃的解决方案

    最近公司做新项目,基于 Bootstrap.AngularJS 和 kendo 开发一套后台的管理系统,在项目中使用了大量的 JavaScript 文件,这两天 Visual Studio 2015 ...