共享锁:Share Lock,简称S锁,当一个事务对数据加读锁后,其他事务只能对该数据加读锁,不能对数据加写锁,直到所有读锁都释放掉。
排它锁:eXclusive Lock,简称X锁,当一个事务对数据加写锁后,其他事物不能再对数据加任何锁,直到写锁释放掉。
意向锁:Intention Lock,加行锁的时候,直接在表级别加意向锁,这样只需要去判断是否存在意向锁。
意向锁分为以下两类:
意向共享锁:Intention Shared Lock,简称IS锁,当一个事务在获得整个表的共享锁之前,先要获得这个表的意向共享锁。
意向独占锁:Intention Exclusive Lock,简称IX锁,当一个事务在获得整个表的排它锁之前,先要获得这个表的意向排它锁。
| 共享锁(S) | 排他锁(x) | 意向共享锁(IS) | 意向排他锁(IX) |
共享锁(S) | 兼容 | 冲突 | 兼容 | 冲突 |
排他锁(x) | 冲突 | 冲突 | 冲突 | 冲突 |
意向共享锁(IS) | 兼容 | 冲突 | 兼容 | 兼容 |
意向排他锁(IX) | 冲突 | 冲突 | 兼容 | 兼容 |