做网站需要api吗,苏州建网站的公司一站式服务公司,一起做网店17广州,黑龙江龙采做网站如何面试题#xff1a;谈一下你对MySQL中锁的了解#xff1f;
我的回答#xff1a;
首先#xff0c;从锁的粒度来分#xff0c;可以分为#xff1a; ①全局锁。全局锁主要用于数据库的备份#xff0c;加上全局锁#xff0c;意味着整个数据库都处于只读的状态。 ②行级锁。…面试题谈一下你对MySQL中锁的了解
我的回答
首先从锁的粒度来分可以分为 ①全局锁。全局锁主要用于数据库的备份加上全局锁意味着整个数据库都处于只读的状态。 ②行级锁。行级锁是用来锁定某一行数据记录的锁。 可以分为行级共享锁读锁和行级排他锁写锁。 当一行记录加了行级共享锁时其他事务还可以进行读操作。 当一行记录加了行级排他锁时其他事务既不可以进行读也不可以进行写。
行级锁中还有 1.间隙锁。间隙锁就是给比如主键id的间隙中加锁防止插入幻影数据。 2.临键锁。临键锁就是给主键id的间隙以及本身这个id加锁防止插入幻影数据。
通过这两个锁从而防止幻读问题。 ③表级锁。表级锁是用来锁定某一张表数据记录的锁。 表级锁中有意向锁。 为什么会有意向锁的出现呢。 比如我想给一张表加排他锁我首先需要判断这张表中是否存在行级排他锁如果存在行级排他锁就会不兼容。如果这张表很大有100万条数据那么我就需要遍历100W条数据去找是否存在行级排他锁这样是十分耗时的。 这个时候就诞生了意向锁可以将意向锁理解为一个标记。如果我在这张表中的某一行加了行级排他锁那么就会加上对应的意向排他锁从而标识这张表中存在行级排他锁。同理如果给一张表中某一行加上了行级共享锁那么也会给这行记录所属的表加上意向共享锁来进行标识。 这样就极大的提高了效率。
从性质来分的话可以分为共享读锁和独占写锁。 ①共享读锁。就是给读操作加锁for share字段。 ②独占写锁。就是给写操作加锁for update字段。
回答时间2024.03.16