是什么

协调多个进程或线程并发访问共享资源的的机制。

锁的种类

按照对数据的操作类型可分为:
1.读锁:共享锁,对于同一份数据,多个读操作可以同时进行,互不影响。
2.写锁:排它锁,当前操作没有完成时,会阻断其它的读锁、写锁。

按照粒度可分为:
1.表锁:偏向MyISAM存储引擎、开销小、加锁快,不会出现死锁、锁定粒度大、发生锁冲突的概率最高、并发度最低。
2.行锁:偏向InnoDB存储引擎、开销大、加锁慢、会出现死锁、锁定粒度最小、发生锁冲突的概率最低、并发度最高。

还有一种锁叫间隙锁:当使用范围条件而不是相等条件检索数据时,并请求共享或排它锁时,InnoDB会给符合条件的已有数据记录的索引项加锁,对于键值在条件范围内但并不存在的记录,叫做“间隙(GAP)”,InnoDB也会给这个“间隙”加锁。

tips:
1.InnoDB与MyISAM的最大不同有两点:一是支持事务,二是采用了行级锁。
2.索引失效行锁变表锁。
3.如何锁定一行:
MySQL之锁
select … for update锁定某一行后,其它的操作会被阻塞,直到锁定行的会话提交commit。
4.行锁的优化建议:
MySQL之锁

相关文章:

  • 2022-12-23
  • 2021-08-07
  • 2022-01-13
  • 2022-02-01
  • 2022-12-23
  • 2022-12-23
  • 2021-04-24
  • 2021-07-12
猜你喜欢
  • 2022-12-23
  • 2022-01-06
  • 2021-08-31
  • 2022-12-23
  • 2021-10-26
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案