数据库

 首页 > 数据库 > MySql > MySQL MDL与存储引擎相关吗?

MySQL MDL与存储引擎相关吗?

分享到:
【字体:
导读:
         摘要:背景是某个业务的logdb历史oss_log(MyISAM表类型)例行删除,有时候会告deadlock。分析slow log发现有些删除需要很长时间,比如:drop table 2014_10_17_oss_abandonquest 花费了15041.2410秒。删除行为在凌晨4点发出,刚好落在备份期间,因为5.5有了...

MySQL MDL与存储引擎相关吗?
背景是某个业务的logdb历史oss_log(MyISAM表类型)例行删除,有时候会告"deadlock"。分析slow log发现有些删除需要很长时间,比如:drop table 2014_10_17_oss_abandonquest 花费了15041.2410秒。删除行为在凌晨4点发出,刚好落在备份期间,因为5.5有了MDL(Meta data lock),所以–single-transaction时,事务内操作过的表都会持有MDL,因此不会被DDL破坏。所以,查看get_status.err会有如下日志:
11966363,hardcore,localhost,oss_log,Query,11084,Waiting for table metadata lock,drop table 2014_10_17_oss_abandonquest

5.5的MDL机制是如果事务不释放,事务里边涉及到的表都会持有该表的DML锁,事务不释放,锁就不释放。而5.0、5.1的MDL机制与事务无关,只要语句结束,语句持有的MDL锁就会释放。这是两者的区别,确实该表引擎没关系。

下面是个测试:

    session.1       session.2    
                 
Step.1   begin;            
Step.2   select * from tb_myisam;        
Step.3           drop table tb_myisam;
            被阻塞…
MySQL MDL与存储引擎相关吗?
分享到:
【MongoDB】在windows平台下mongodb的分...
【MongoDB】在windows平台下mongodb的分片集群(四)前言:     今天周末却学了一天,有点不想学习了,就在刚写完前两篇后,大概过了一个小时,我就在心里说,如果刚才写的那两篇博客阅读量过了80我就些这篇博客,如果不过,今晚就不再学习了。刚刚一看,一篇恰好80,另一篇是85.。所以在此谢谢网友给的动力。那这篇博客...
Neo4j数据库简介 设计理念 Neo4j的存储结...
Neo4j数据库简介 作为世界先进的图数据库,Neo4j成为了时下许多互联网公司的首选。Neo4j是基于java开发的开源图数据库,也是一种NoSQL数据库。Neo4j在保证对数据关系的良好刻画的同时,还支持传统关系型数据的ACID特性,并且在存储效率,集群支持以及失效备援等等方面都有着不错的表现。近来因为实验室的项目的关系,对Neo4...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……