MySQL中的3种锁:表级锁,行级锁,页面锁
表级锁:
开销小,加锁快,不会出现死锁,锁定粒度大,发生锁冲突的概率最高,并发度最低。
行级锁:
开销大,加锁慢,会出现死锁,锁定粒度小,发生锁冲突的概率最低,并发度最高。
页面锁:
开销和加锁时间介于表锁和行锁之间,会出现死锁,锁定粒度介于表锁和行锁之间,并发度一般。
MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);
BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;
InnoDB存储引擎支持行级锁(row-level locking),也支持表级锁,默认行级锁。