MySQL的锁机制比较简单,不同的存储引擎支持不同的锁机制。MyISAM和MEMORY存储引擎采用的是表级锁,BDB存储引擎采用的是页面锁,也支持表级锁。InnoDB存储引擎既支持行级锁,也支持表级锁。
MySQL的3种锁的特性归纳如下:
- 表级锁: 开销小,加锁快,不会出现死锁,锁定粒度大,发生锁冲突的概率高,并发度低。
- 行级锁: 开销大,加锁慢,会出现死锁,锁定粒度小,发生锁冲突的概率最低,并发度也最高。
- 页面锁: 开销和加锁时间界于表锁和行锁之间;会出现死锁,锁定粒度界于表锁和行锁之间,并发度一般。