Lock - 事务锁
与 latch 的区别
lock对象是事务,用来锁定的是数据库中的对象,如表、行、页。并且一般lock的对象仅在事务commit或rollback后进行释放(不同事务隔离级别释放的时间可能不同)。此外,lock,正如在大多数数据库中一样,是有死锁机制的。
InnoDB中B+树的层次结构——对这些结构加事务锁
首先了解一下数据是怎么存放的,他的一个层次结构,方便理解
加锁原则
二阶段加锁原则
- 加锁阶段
- 解锁阶段
所有的事务必须分两个阶段对数据项加锁和解锁。即事务分两个阶段,第一个阶段是获得封锁。事务可以获得任何数据项上的任何类型的锁,但是不能释放;第二阶段是释放封锁,事务可以释放任何数据项上的任何类型的锁,但不能申请
加锁解锁互不相交,各司其职