MST

星途 面试题库

面试题:MariaDB中TABLE结构的共享锁与排他锁在并发控制中的应用场景有何不同?

请阐述在MariaDB数据库里,针对TABLE结构,共享锁(Shared Lock)和排他锁(Exclusive Lock)分别在什么样的并发操作场景下会被使用,举例说明两者适用场景的差异。
36.2万 热度难度
数据库MariaDB

知识考点

AI 面试

面试题答案

一键面试

共享锁(Shared Lock)

  1. 并发操作场景:适用于多个事务同时读取数据的场景。当一个事务对数据加上共享锁后,其他事务可以同时获取该数据的共享锁来读取数据,但不能获取排他锁进行写入操作。
  2. 举例:例如在电商系统中,多个用户同时查询商品库存数量。事务A获取商品库存数据的共享锁进行读取,此时事务B也可以获取该共享锁读取库存数据,不会相互阻塞,保证了并发读的性能。

排他锁(Exclusive Lock)

  1. 并发操作场景:用于对数据进行修改的操作场景。当一个事务对数据加上排他锁后,其他事务既不能获取共享锁读取数据,也不能获取排他锁进行写入操作,直到持有排他锁的事务释放锁。
  2. 举例:还是电商系统,当某个用户下单购买商品时,需要减少商品库存。事务C获取商品库存数据的排他锁,然后进行库存数量的更新操作。在事务C未提交或回滚释放排他锁前,其他事务不能对该库存数据进行读或写操作,避免了数据不一致问题,比如超卖现象。

两者适用场景差异

共享锁适用于以读为主的场景,能提高并发读的效率,允许多个事务同时读取数据;而排他锁适用于写操作场景,确保在数据修改时的原子性和一致性,防止其他事务干扰修改过程,避免数据冲突。