博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Innodb锁机制:Next-Key Lock 浅谈(转)

Posted on 2016-11-02 11:34  moss_tan_jun  阅读(221)  评论(0编辑  收藏  举报

  http://www.cnblogs.com/zhoujinyi/p/3435982.html

 

数据库使用锁是为了支持更好的并发,提供数据的完整性和一致性。InnoDB是一个支持行锁的存储引擎,锁的类型有:共享锁(S)、排他锁(X)、意向共享(IS)、意向排他(IX)。为了提供更好的并发,InnoDB提供了非锁定读:不需要等待访问行上的锁释放,读取行的一个快照。该方法是通过InnoDB的一个特性:MVCC来实现的。

InnoDB有三种行锁的算法:

1,Record Lock:单个行记录上的锁。

2,Gap Lock:间隙锁,锁定一个范围,但不包括记录本身。GAP锁的目的,是为了防止同一事务的两次当前读,出现幻读的情况。

3,Next-Key Lock:1+2,锁定一个范围,并且锁定记录本身。对于行的查询,都是采用该方法,主要目的是解决幻读的问题。