python MYSQLdb 默认关闭 autocommit,任意执行一个 select * from user 语句,对于 MYSQL 5.5 以上的版本,都会造成 METADATA LOCK 阻塞。如下
select * from user;
alter table user ......; -- 阻塞 METADATA LOCK
select * from user; -- 阻塞 METADATA LOCK
结论:
select / update /delete 都会作为事务,事务就会出发 METADATA LOCK
alter table 也会申请 METADATA LOCK,但是会立即释放