trx1从refId = 4的表中选择*以进行更新
trx2插入表(refId)值(2); 块
trx2将被阻止,我知道trx1将保持间隙锁定,[1,4),[4,7);
我的问题是为什么要保持差距锁定?“插入val 2”与“选择refId = 4进行更新”没有冲突,为什么innodb将保持间隙锁定,为什么不使用记录锁定?
这个问题困扰了我很长时间,请科技上帝救救我。
mysql innodb locking
innodb ×1
locking ×1
mysql ×1