锁机制

当事务A更新一行数据时,先把数据读入缓存页,此时事务A对这行数据更新,会先看这行数据有没有加锁,如果没有加锁的话,事务A将会对这行数据进行加锁,将自己的事务id和等待状态false写入锁中,此时事务B来更新这行数据时,发现这行数据已经有锁了,事务B也会对这行数据创建一把锁,这把锁包含B事务id和锁的等待状态,但是此时事务B锁的等待状态是true,表示正在排队等待,若此时事务A执行完毕,会将锁释放,并判断是否还有其它锁等待这行数据进行更新,,于是发现事务B也对这行数据进行了加锁,此时事务A会将事务B的锁的等待状态改为false并会唤醒事务B继续执行,此时事务B就获取到锁了