目录
1.锁机制简介
在数据库操作时,多个事务入库要处理相同的资源,容易发生冲突,为解决这种冲突,在数据库操作中引入了锁机制。
mysql的锁机制与数据库引擎相关,myisam 和 innodb 的锁机制就不太一样。
2.锁分类--基于锁的粒度
2.1表级锁
mysql 中锁定粒度最大的一种锁,直接对当前操作的表进行加锁,资源消耗比较小,加锁快,不会产生死锁。
myisam 和 innodb 都支持表级锁。
2.2行级锁
mysql 中锁定粒度最小的一种锁,对当前操作的行进行加锁,资源消耗较大,加锁慢,会产生死锁。
innodb 支持行级锁,是innodb的默认锁机制。
2.3页级锁
mysql 中锁定粒度基于表级锁和行级锁之间。相当于在行级锁和页级锁之间做了一个折中。
3.锁分类--基于是否可写入
3.1读锁(共享锁)
share lock,其他用户可以并发的读取数据,但都不能修改数据。
3.2写锁(排他锁)
exclusive lock,若事务对某一数据对象加了排他锁,那其他事务则不能读,也不能修改该对象。
3.3另外的2个表级锁(意向排他锁,意向共享锁)
4.死锁的产生及避免
5.总结
参考: