首页 > 文章列表 > 如何使用MySQL的间隙锁?

如何使用MySQL的间隙锁?

mysql
420 2023-05-17

说明

1、当我们用范围条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的索引项加锁;对于键值在条件范围内但并不存在的记录,叫做间隙。

2、InnoDB也会对这个间隙加锁,这种锁机制就是所谓的间隙锁。

注意

若执行的条件是范围过大,则InnoDB会将整个范围内所有的索引键值全部锁定,很容易对性能造成影响。

实例

Transaction-A
mysql> update innodb_lock set k=66 where id >=6;
Query OK, 1 row affected (0.63 sec)
mysql> commit;
 
Transaction-B
mysql> insert into innodb_lock (id,k,v) values(7,'7','7000');
Query OK, 1 row affected (18.99 sec)