设为首页 加入收藏

TOP

MySQL 之 Metadata Locking 研究(五)
2015-11-21 01:32:51 来源: 作者: 【 】 浏览:1
Tags:MySQL Metadata Locking 研究
时释放,所以MySQL中一定不要有大事务,特别是运行时间比较长的事物;
?
不然会导致对metadata lock的长期占用。会阻塞其它事务中任何涉及到该database object的DDL语句和lock table ... write语句;
?
6)DDL 语句和 事务还有lock table xxx write语句的区别:
?
DDL 语句并不会再执行期间一直持有metadata lock,而是只在执行的开始瞬时持有metadata lock,马上释放;
?
而事务会在事务期间一直持有metadata lock;lock table xxx write语句也会一直持有metadata lock直到unlock语句解锁。
?
7)长的事物 和 lock table ... write语句会长时间持有 metadata lock; 所以在执行DDL语句之前,要使用show processlist语句看DDL语句涉及到的table
?
?是否被某个长时间运行的事物所访问。不然DDL语句会存在一直被 metadata lock 所阻塞的危险。可怕的不是DDL,而是长事务。
?
8)mysql命令行工具中执行的 DDL 语句不会受到 autocommit=on/off 的影响,DDL 语句自动开始事务,结束时自动提交事物;
?
9)DDL语句的最大危害之处:
?
未提交事物或者长事务,它们会长时间持有 metadata lock, 会阻塞其后的DDL语句对metada lock的互斥申请,
?
然后该DDL语句对metadata lock的互斥申请,会阻塞其后所有的涉及到该database objects的所有语句,因为它们也要申请metadata lock。
首页 上一页 2 3 4 5 下一页 尾页 5/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇ORACLE记录连接用户的IP地址以及.. 下一篇MySQL实战课程---通过录像手把手..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: