Mysql INNODB引擎行锁的3种算法
InnoDB存储引擎有3种行锁的算法,其分别是:
□ Record Lock:单个行记录上的锁
Record Lock总是会去锁住索引记录,如果InnoDB存储引擎表在建立的时候没有设置任何一个索引,那么这时InnoDB存储引擎会使用隐式的主键来进行锁定
□ Gap Lock:间隙锁,锁定一个范围,但不包含记录本身
□ Next-Key Lock∶Gap Lock+Record Lock,锁定一个范围,并且锁定记录本身
如:事务内:select id,b from table where b=10 for update ,首先锁住b=10对应数据id的索引(Record Lock),然后锁住辅助索引b =10前后2个间隔索引范围Grap