面试题答案
一键面试共享锁(S锁)
- 特点:多个事务可以同时对同一数据对象加共享锁,即共享锁具有兼容性,持有共享锁的事务只能读取数据,不能修改数据。
- 保障数据一致性作用:允许多个事务并发读取数据,确保在读取过程中数据不会被修改,维持数据读取时的一致性状态,避免脏读等问题。
排他锁(X锁)
- 特点:排他锁具有排他性,同一时刻只有一个事务能对数据对象加排他锁,持有排他锁的事务可以对数据进行读取和修改操作,其他事务不能再对该数据加任何锁,直到排他锁被释放。
- 保障数据一致性作用:确保在数据修改时,没有其他事务同时进行修改,避免数据竞争导致的数据不一致,保证修改操作的原子性,防止丢失更新等问题。
意向锁
- 特点:意向锁分为意向共享锁(IS锁)和意向排他锁(IX锁),是表级锁,用于表示事务想要在表中的某些行上加共享锁或排他锁的意图。意向锁是在获取行级锁之前,先获取表级的意向锁。意向共享锁与共享锁兼容,意向排他锁与其他意向锁和排他锁不兼容。
- 保障数据一致性作用:减少锁等待和死锁的发生,提高并发性能。在对表中的行数据加锁前,先获取意向锁,使得数据库可以快速判断是否可以对表进行相应的锁操作,避免在获取行锁时发现表已经被其他事务以不兼容的方式锁定,从而提高并发控制的效率,维护数据一致性。