Mysql全局锁和表锁

107 阅读1分钟

开启全局锁还能添加字段吗?

不可以,全局锁一旦开启,任何其他操作都不允许。

什么情况下加全局锁?

做全库逻辑备份,把库的每个表都select出来存成文本。

为什么要用FTWRL方式?

不支持事务的引擎,破坏了一致性,就要用FTWRL命令。

什么叫更细粒度的锁

更细粒度的锁就是只锁住你当前操作所需的最小资源单元,从而提高系统的并发性能和灵活性。

分布式需要用到,多个事务同时执行。

表锁如何使用?

用不了行锁,不支持事务的引擎,采用表锁。

MDL元数据锁如何使用?

当对一个表做增删改查操作的时候,加MDL读锁;

当要对表做结构变更操作的时候,加MDL写锁。

总结

锁有三种,全局锁,表锁,行锁。全局锁的粗粒度,行锁的细粒度。只有INNODB引擎支持行锁,非此引擎的锁只能使用表锁。分布式服务采用行锁对表的影响面小。