MST
星途 面试题库

面试题:MySQL中意向锁的类型及作用分别是什么

请阐述MySQL意向锁有哪些类型,以及每种类型意向锁在数据库并发控制中的具体作用。
25.8万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试

意向锁类型

  1. 意向共享锁(IS锁)
  2. 意向排他锁(IX锁)

具体作用

  1. 意向共享锁(IS锁)
    • 当事务想要在某行上加共享锁(S锁)时,首先要在表级别加IS锁。它表明事务意图在表中的某些行上加共享锁。这使得其他事务可以并发地获取表上的IS锁,但不能获取排他锁(X锁)。例如,在一个查询操作中,如果要对表中的某些行进行读取操作并加共享锁,就会先获取表级别的IS锁,这样可以告知其他事务,该事务只是读取部分数据,其他事务也可以读取,但不能修改。
  2. 意向排他锁(IX锁)
    • 当事务想要在某行上加排他锁(X锁)时,首先要在表级别加IX锁。它表明事务意图在表中的某些行上加排他锁,用于修改数据。一旦表上有IX锁,其他事务不能再获取表上的共享锁(S锁)或排他锁(X锁)。比如一个更新操作,在对特定行加排他锁之前先获取表级别的IX锁,防止其他事务同时修改或读取相关数据,保证数据修改的原子性和一致性。