mysql各种锁
根据级别分为:全局锁,表级锁,页级锁,间隙锁,临键锁,行级锁
根据锁共享策略分为:共享锁,排他锁,意向共享锁,意向排他锁
根据加锁策略分为:乐观锁,悲观锁
其他锁相关:自增锁,mdl...6
Q3:查询b=6的数据 这里变成了2条
Q4:插入一条b=6的数据
Q5:查询b=6的数据 这里变成了3条
在这3个事务中,由于事务级别为重复读,理应Q3,Q5数据都一样,在Q1中,...,所以mysql引入了间隙锁
间隙锁如何解决幻读
在插入数据时,mysql额外增加了间隙锁的概念,在插入表数据后,会生成 "前开后闭"的间隙区间:
-∞,2 2,6 6,9 9,∞
当给b=6加锁时...在操作数据时,将自动给此条数据加锁:
临键锁
临键锁就是 行锁+间隙锁的组合
共享锁和排他锁
共享锁(S锁) 排它锁(X锁)其实就是我们说的读锁和写锁
在查询语句中,mysql自动加 S锁,其他连接也只能加...S锁查询,不能加写锁更新
在insert,update,delete 语句中,将自动加 X锁,其他语句不能对锁住的数据操作(包括读取)
意向锁
意向锁是mysql表级锁,
当需要对数据进行加 共享锁