首页 > 数据库 > MySQL > 8.11.4 Metadata Locking
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
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21374452/viewspace-2772571/ ,如需转载,请注明出处,否则将追究法律责任。