丁奇-MySQL实战读书笔记20

幻读是什么,幻读有什么问题?

什么是幻读?
幻读指的是一个事务在前后两次查询同一个范围的时候,后一次查询看到了前一次查询没有看到的行。(幻读在当前读下才会出现;幻读仅专指新插入的行)
如何解决幻读?
间隙锁(Gap lock):(两个值之间的锁)。
间隙锁和行锁合称 next-key lock,每个 next-key lock 是前开后闭区间。
间隙锁为开区间。
next-key-lock为前开后闭区间。
间隙锁引入什么问题?
可能会导致同样的语句锁住更大的范围,这其实是影响了并发度的。
间隙锁在RR级别下才有效,RC级别下无间隙锁。
不使用间隙锁方法:
使用读提交隔离级别+ binlog_format=row组合。

你可能感兴趣的:(丁奇-MySQL实战读书笔记20)