MySQL 中有哪几种锁
MySQL中常见的锁有以下几种:
-
共享锁(Shared Lock):允许多个事务同时读取一个资源,但不允许其他事务写入该资源。多个共享锁可以同时存在,互不干扰。
-
排他锁(Exclusive Lock):只允许一个事务独占地使用资源,其他事务既不能读取也不能写入该资源。排他锁与共享锁是互斥的。
-
记录锁(Record Lock):锁定某一行记录,其他事务不能修改该行记录,但可以读取。记录锁是在InnoDB存储引擎中实现的。
-
间隙锁(Gap Lock):锁定一个范围,但不包括记录本身。在InnoDB存储引擎中,当使用范围条件查询时,会自动加上间隙锁,防止其他事务在范围内插入新记录。
-
Next-Key锁:结合记录锁和间隙锁,锁定范围内的记录和间隙。在InnoDB存储引擎中,使用Next-Key锁可以解决幻读问题。
-
表锁(Table Lock):锁定整个表,其他事务不能读取和写入该表。表锁一般用于一些特殊操作,如备份、优化等。
原文地址: https://www.cveoy.top/t/topic/ibR1 著作权归作者所有。请勿转载和采集!