- 表级锁:MySQL中锁定范围最大的一种锁,表示对当前操作的整张表加锁,它实现简单,最常使用的MyISAM与InnoDB都支持表级锁定。它的特点是:开销小、加锁快;锁定范围大,发生锁冲突的概率最高,并发量最低,不会出现死锁。
- 行级锁:MySQL中锁定范围最小的一种锁,只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突,其加锁范围最小,但加锁的开销也最大。它的特点是:开销大,加锁慢;锁定粒度最小,发生锁冲突的概率最低,并发度也最高,会出现死锁。但需要注意:InnoDB行锁是通过给索引上的索引项加锁来实现的,只有通过索引条件检索数据,InnoDB才使用行级锁,否则InnoDB将使用表锁。
- 页级锁:页级锁是MySQL中锁定粒度介于行级锁和表级锁中间的一种锁,一次锁定相邻的一组记录。