当前读和快照读
当前读:加了锁(排它锁、共享锁)的增删改查语句
快照读:不加锁的非阻塞读
InnoDB可重复隔离级别下如何避免幻读?
(1)next-key锁(行锁+gap锁)、gap锁:锁定一个范围,但不包括记录本身,为了防止同一事务的两次当前读。
(2)若where条件全部命中。则不会用Gap锁,只会加记录锁
(3)如果where条件部分命中或者全不命中,则会加Gap锁
(4)Gap锁会用在非唯一索引或者不走索引的当前读中
当前读和快照读
当前读:加了锁(排它锁、共享锁)的增删改查语句
快照读:不加锁的非阻塞读
InnoDB可重复隔离级别下如何避免幻读?
(1)next-key锁(行锁+gap锁)、gap锁:锁定一个范围,但不包括记录本身,为了防止同一事务的两次当前读。
(2)若where条件全部命中。则不会用Gap锁,只会加记录锁
(3)如果where条件部分命中或者全不命中,则会加Gap锁
(4)Gap锁会用在非唯一索引或者不走索引的当前读中