创建表如果不存在等待表元数据锁

  如果不存在,创建表,等待表元数据锁
  版本mysql 5.5
  现象:
  mysql>显示完整的processlist;
  + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
  | |用户Id,,,,,|主机大敌;,| db大敌;| |命令时,|国家大敌;,,,,,,,,,,,,|信息,,,,,,,,,,,,,,,,|
  + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
  1 | |,event_scheduler | localhost零| |守护进程,| 1661254 |等待空队列,,,,|空大敌;,,,,,,,,,,,,,,,|
  | |,4根,,,,,localhost, | | |查询测试,|,,,13 |等待表元数据锁|创建表如果不存在像t |
  | |,5根,,,,,测试localhost, | | |睡眠,|,,32 |大敌;,,,,,,,,,,,,,,,|空,,,,,,,,,,,,,,,,|
  | |,7根,,,,,零| | localhost |查询大敌;|,,,0 |空,,,,,,,,,,,,,|显示完整processlist大敌;,,,,,,|
  + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
  
  
  mysql>从information_schema选择*。innodb_trx \ G
  空集(0.00秒)
  
  
  查不到锁。
  
  
  重现:
  会话,1:
  创建表(id int)引擎=myisam;
  开始,
  select *的;
  
  
  session2:
  创建表如果不存在像t;
  ....等待.....
  
  
  
  
  阶段3:
  mysql>显示完整的processlist;
  + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
  | |用户Id,,,,,|主机大敌;,| db大敌;| |命令时,|国家大敌;,,,,,,,,,,,,|信息,,,,,,,,,,,,,,,,|
  + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
  1 | |,event_scheduler | localhost零| |守护进程,| 1661796 |等待空队列,,,,|空大敌;,,,,,,,,,,,,,,,|
  | |,5根,,,,,测试localhost, | | |睡眠,|,,51 |大敌;,,,,,,,,,,,,,,,|空,,,,,,,,,,,,,,,,|
  | |,7根,,,,,零| | localhost |查询大敌;|,,,0 |空,,,,,,,,,,,,,|显示完整processlist大敌;,,,,,,|
  | | 10根,,,,,localhost, | | |查询测试,|,,,40 |等待表元数据锁|创建表如果不存在像t |
  + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
  4行集(0.00秒)
  
  
  mysql>从information_schema选择*。innodb_trx \ G
  空集(0.00秒)
  
  
  如果一个表的定义是innodb,就可以通过,从information_schema选择*。innodb_trx \ G查询到记录
  
  
  另:
  5.6版本没有这个问题。
  
  
  
  
  转载请注明源出处
  QQ 273002188欢迎一起学习
  QQ群236941212
  甲骨文、mysql、mongo相互交流

创建表如果不存在等待表元数据锁