- 行锁 - 与表锁不能同时存在 - 表锁 - 锁定一张表 - 读写锁 - 读锁和读锁不互斥,其它情况互斥 - 意向共享锁,意向互斥锁 - 是为了解决如果要添加表锁需要检查是否有行锁的情况,可以根据意向锁判断是否存在行锁 - 意向锁和意向锁之间不会互斥 - 意向共享锁和表级别的读锁之间不互斥,其它会互斥 - 意向锁不会与任何行锁互斥 - 间隙锁 - 锁定的是两个索引之间的间隙,防止新的记录插入到该间隙中,主要是为了解决幻读的问题 - 一个事务读取某个范围的记录,另一个事务再这个范围内插入了新的记录 - 缺点 - 有一定死锁风险,性能影响,添加复杂性,锁定范围可能过大 - 临键锁 - 特殊的间隙锁,只与非唯一索引有关 - 非唯一索引列上都会存在一个临键锁,所著一段左开右闭的区间