一、全局锁
全局锁是对整个数据库实例加锁,整个库处于只读状态。
flush tables with read lock
适用场景
全局锁适用于做全库逻辑备份,但是整个库处于只读状态,在备份期间,所有的更新操作、DDL将会被阻塞,会对业务产生影响。
single-transaction
mysqldump备份时可以使用single-transaction参数,在备份数据之前启动一个事务,借助于MVCC获取到一致性视图,保证在备份的过程中,还支持数据的更新操作。
但是single-transaction只能用于支持事务的引擎,比如MyISAM不支持事务,所以使用MyISAM引擎的时候,是无法使用single-transaction的。
二、表级锁
表级锁分为表锁和元数据锁。
1、表锁
表锁从名字上就可以看出锁的是数据库表(Table),语法为: