8.11.4 Metadata Locking

来源:这里教程网 时间:2026-03-01 15:56:10 作者:

       MySQL会使用 Metadata locking 去管理数据库对象的并发访问和保证数据的一致性。 Metadata locking 不仅会在表上使用,而且会在schemas, stored programs(procedures , function,triggers 和 scheduled events) 上使用,同时也包括表空间。        比如一个会话开启一个事务使用transactional 表t 和 notransactional table nt : start transaction; select * from t; select * from nt; 数据库服务器会持有表t 和 nt的Metadata locking 直到事务结束。如果有另外的会话试图在这两张表的任何一张表上使用DDL 或 写锁操作都会被阻塞。 比如下面操作都会被阻塞: drop table t; alter table t ...; drop table nt; alter table nt ...; lock table t ... write; 本文参考文章 8.11.4 Metadata Locking https://dev.mysql.com/doc/refman/5.7/en/metadata-locking.html

相关推荐