技术&日志

MySQL-锁

乐观锁、悲观锁、共享锁、排他锁、行锁、表锁、死锁

疑问难点

  • 什么是锁?
  • 为什么会出现锁情况?
  • 如果模拟锁情况?

基础知识

锁是计算机协调多个进程或线程并发访问某一资源的机制。锁保证数据并发访问的一致性、有效性;锁冲突也是影响数据库并发访问性能的一个重要因素。锁是Mysql在服务器层和存储引擎层的的并发控制。

加锁是消耗资源的,锁的各种操作,包括获得锁、检测锁是否是否已解除、释放锁等。

查询锁

select * from tblxxx where id = ? for update

  • 锁作用在where字段是索引上
  • 锁作用在事务之中

相关资料

官方文档-InnoDB Locking and Transaction Model

MySQL-InnoDB-锁概念的理解
MySQL锁总结

MySQL常见的七种锁详细介绍

mysql 死锁模拟测试
MySQL单表模拟锁和事务的几个场景

发表评论