Files
Hui-s-notebook/logseq-java/pages/MySQL中锁机制.md
2024-02-02 00:12:49 +08:00

928 B

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