mysql各种锁
根据级别分为:全局锁,表级锁,页级锁,间隙锁,临键锁,行级锁
根据锁共享策略分为:共享锁,排他锁,意向共享锁,意向排他锁
根据加锁策略分为:乐观锁,悲观锁
其他锁相关:自增锁,mdl...表锁可对一个表或多个表进行加锁....引入了间隙锁
间隙锁如何解决幻读
在插入数据时,mysql额外增加了间隙锁的概念,在插入表数据后,会生成 "前开后闭"的间隙区间:
-∞,2 2,6 6,9 9,∞
当给b=6加锁时,其实是给2,6...在操作数据时,将自动给此条数据加锁:
临键锁
临键锁就是 行锁+间隙锁的组合
共享锁和排他锁
共享锁(S锁) 排它锁(X锁)其实就是我们说的读锁和写锁
在查询语句中,mysql自动加 S锁,其他连接也只能加...都可以认为是悲观锁
自增锁
如果表存在自增字段,则mysql会额外增加一个自增锁用于控制自增数.