mysql间隙锁和临键锁
时间: 2023-07-02 18:06:31 浏览: 249
MySQL锁(表锁,行锁,共享锁,排它锁,间隙锁)使用详解
5星 · 资源好评率100%
MySQL 的间隙锁和临键锁是 InnoDB 存储引擎中的两种锁机制。
间隙锁是用于防止幻读的,它是在一个索引范围内的空隙上设置的锁,用于防止其他事务在这个范围内插入新的行。例如,如果一个事务执行如下查询:
```
SELECT * FROM table WHERE id BETWEEN 10 AND 20 FOR UPDATE;
```
那么 InnoDB 会在 id 为 10 和 20 之间的空隙上设置间隙锁,防止其他事务在这个范围内插入新的行。
临键锁则是在查询过程中直接锁定行的记录,防止其他事务对该行进行修改或删除。临键锁是在读取或修改某一行记录时设置的锁,只有当这个事务结束后,锁才会被释放。
这两种锁机制的区别在于锁定的范围不同,间隙锁是在索引范围内的空隙上设置锁,而临键锁则是在具体的行记录上设置锁。
阅读全文