Mysql—锁原理与详解

MySQL锁介绍

一、加锁的目的:解决客户端并发访问的冲突问题

二、锁的分类

  • 按照锁的功能来说分为:共享读锁和排他写锁。
  • 按照锁的实现⽅式分为:悲观锁和乐观锁(使⽤某⼀版本列或者唯⼀列进⾏逻辑控制)。
  • 按照锁的粒度来说,MySQL主要包含三种类型(级别)的锁定机制:全局锁、表级锁、⾏级锁。
  1. 全局锁:锁的是整个database。由MySQL的SQL layer层实现的。
  2. 表级锁:锁的是某个table。由MySQL的SQL layer层实现的。
  3. ⾏级锁:锁的是某⾏数据,也可能锁定⾏之间的间隙。由某些存储引擎实现,⽐如InnoDB。

三、表级锁和⾏级锁的区别

  • 表级锁:开销⼩,加锁快;不会出现死锁;锁定粒度⼤,发⽣锁冲突的概率最⾼,并发度最低。
  • ⾏级锁:开销⼤,加锁慢;会出现死锁;锁定粒度最⼩,发⽣锁冲突的概率最低,并发度最⾼。
  • 表级锁锁着整张表,我锁着的时候,别人就用不了,所以发⽣锁冲突的概率最⾼。⾏级锁锁着表的某一行,其他行还是可以操作的,发⽣锁冲突的概率最低。
posted @ 2019-09-25 09:22  刘_love_田  阅读(1070)  评论(1编辑  收藏  举报