MySQL事务锁的种类主要分为两种,即行级锁和表级锁。
- 行级锁:行级锁是针对表中的每一行数据进行加锁的方式,只有操作到对应的行数据时才会加锁。常见的行级锁有:
- 共享锁(Shared Lock):多个事务可以同时持有共享锁,但是互斥锁(排它锁)会阻止共享锁的获取。共享锁适用于读操作。
- 互斥锁(Exclusive Lock):事务在修改某一行数据时需要获取互斥锁,其他事务无法同时获取相同行的互斥锁。适用于写操作。
- 表级锁:表级锁是对整个表进行加锁的方式,当事务需要修改表中的任何行数据时,都需要先获取表级锁。常见的表级锁有:
- 表级读锁(Read Lock):多个事务可以同时持有表级读锁,不会阻止其他事务同时持有表级读锁。适用于读操作。
- 表级写锁(Write Lock):事务在修改表中任意行数据时需要获取表级写锁,其他事务无法同时获取表级写锁。适用于写操作。
除了上述常见的行级锁和表级锁外,MySQL还支持更细粒度的锁,如间隙锁、意向锁等,用于提供更高效的并发控制。