Mysql知识:锁

锁有不同的分类标准,可以分为以下:

从粒度上来看,innodb只有表锁和行锁

 myisam不支持行锁

共享锁和排他锁(s锁和x锁,读锁和写锁,都是一个意思)

 用来读数据,其他事务也可也读到,但不允许修改,多个共享锁可以共存

什么是意向锁

 数据引擎维护,是为了避免用于判断没有其他事务锁住行时,还要使用全表扫描

锁住的不是---不是一行数据,不是一个字段,也不是一列
而是锁住的是索引
 
 
行锁算法:

记录,间隙,临键
 

 当索引搜索不到任何数据时,锁住的是间隙(间隙锁用于防止在该范围插入数据)

事务隔离级别对锁的使用:

innodb如何在可重复读事务隔离级别避免幻读

RC--提交读

RR--可重复读

可重复读时:锁住了间隙锁,防止插入

原文地址:https://www.cnblogs.com/take-it-easy/p/14536019.html