mysql中有多少种锁
MySQL中有以下几种锁:
-
共享锁(Shared Lock):多个事务可以同时持有共享锁,用于读取数据,不会阻塞其他事务获取共享锁,但会阻塞获取排他锁的事务。
-
排他锁(Exclusive Lock):只能被一个事务持有,用于修改数据,会阻塞其他事务获取共享锁和排他锁。
-
记录锁(Record Lock):在InnoDB存储引擎中使用,锁定单个行记录,可以是共享锁或排他锁。
-
Gap锁(Gap Lock):在InnoDB存储引擎中使用,锁定索引范围,防止其他事务插入新记录或修改已有记录。
-
Next-key锁(Next-key Lock):在InnoDB存储引擎中使用,结合了记录锁和Gap锁的特性,锁定索引范围和记录,防止幻读。
-
表锁(Table Lock):锁定整个表,用于DDL操作等场景,会阻塞所有对表的读写操作。
-
元数据锁(Metadata Lock):用于保护数据库的元数据,例如表结构、索引等,防止其他事务对其进行修改。
原文地址: https://www.cveoy.top/t/topic/eKQo 著作权归作者所有。请勿转载和采集!