关于锁的算法

    关于锁的算法

  InnoDB存储引擎有3种行锁的算法,其分别是:

  Record Lock:单个行记录上的锁,它会锁住索引记录,如果InnoDB存储引擎表在建立的时候没有设置任何一个索引,那么这时InnoDB存储引擎会使用隐式的主键来进行锁定;

  Gap Lock:间隙锁,锁定一个范围,不包含记录本身;

  Next-Key Lock:Gap Lock + Record Lock,锁定一个范围,包含记录本身。Next-Key Lock可以解决幻读问题(Phantom Problem)。

  当查询的索引含有唯一属性时,InnoDB存储引擎会对Next_Key Lock进行优化,将其降级为Record Lock,即仅锁住索引本身,而不是范围。

posted @ 2019-05-28 18:26  难懂的人123  阅读(174)  评论(0编辑  收藏  举报