2019-07-28第21讲:间隙锁
2019-07-28 本文已影响0人
Mr钧
疑问一: 分析mysql, DML语句的锁时, 因为如何思考呢? 顺序是表锁==> 行锁吗? 那间隙锁呢?
还有意向锁也是表级锁, 还有什么表锁呢?
总则:

#2 非唯一索引等值锁 ==> 如果要给行加读锁避免更新, 要绕过覆盖索引的优化.既让执行计划回表
#3 主键索引范围锁: ==> 等值查询使用行锁, 范围查询使用间隙锁 ==> next-key lock ; 等值查询会退化成行锁; 范围查询会退化间隙锁;
#4 非唯一索引范围锁 : ==> 等值查询==>加锁的时候, 以开区间的方式从前往后找,找到了,就是闭区间. 主键会退化成行锁; 非主键不会.
#6 非唯一索引上存在"等值"的例子 ==> select ; update ; insert ; delete ; 的加锁逻辑基本一致
#7 limit 语句加锁 ==> 在满足limit的前提下, 会绕过优化2==> 即找到满足limit的条数后, 不会再往右查找到不满足的条件
#8 一个死锁的例子 next-key lock ==> 具体执行,是先加间隙锁, 在加行锁的.