该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点
面试官:Mysql中有哪几种锁?
在MySQL中,主要有以下几种类型的锁:
-
共享锁(Shared Lock):也称为读锁。多个事务可以同时持有共享锁,可以读取但不能修改被锁定的数据。其他事务也可以获取共享锁,但不能获取排他锁。
-
排他锁(Exclusive Lock):也称为写锁。事务在获取排他锁后,可以对被锁定的数据进行读取和修改。其他事务不能获取排他锁。
-
记录锁(Record Lock):也称为行锁。在使用InnoDB存储引擎时,MySQL可以对表中的记录进行加锁,保证并发操作的正确性。记录锁只对指定的记录生效。
-
表锁(Table Lock):锁定整个表,在使用MyISAM存储引擎时,MySQL使用表级锁来进行并发控制。
-
页面锁(Page Lock):在使用InnoDB存储引擎时,MySQL会根据需要将相邻的多个记录组织到一个页面中,对这个页面加锁,称为页面锁。
-
间隙锁(Gap Lock):用于保护索引范围之间的间隙,防止其他事务在间隙中插入新数据。