MySQL 锁和隔离级别关系总结

本文总结了MySQL的锁类型,包括排他锁、自增锁、插入意向锁、记录锁和间隙锁,以及它们在不同场景下的作用。同时阐述了四种隔离级别——读未提交、读已提交、可重复读和串行化,分析了各隔离级别可能导致的问题,如读脏、不可重复读和幻读现象。
摘要由CSDN通过智能技术生成
MySQL的锁:

排他锁:读写,读读都不能并行

自增锁:表锁,主键是自增的话,会串行执行insert,后面的insert必须等待第一个事务完成

插入意向锁:如果insert 不是同一行的话,不会互相影响

记录锁(行锁):select会影响修改和删除本行,锁的是索引

间隙锁:锁间隙,防止select时修改间隙里面的数据(在RR下,防止出现幻读;RC的话会自动消失)

临隙锁,记录锁和间隙锁的结合,也是防止出现幻读,RC下也会自动消失

(1)记录锁锁定索引记录;

(2)间隙锁锁定间隔,防止间隔中被其他事务插入;

(3)临键锁锁定索引记录+间隔,防止幻读;

读脏: 读取到了没有提交的数据
不可重复读: 两次读取到的数据不一样(数据被修改)
幻读:两次读取到的结果集不一样(中间有插入或者删除数据)

MySQL四种隔离级别
读未提交:隔离级别最低,select不加锁,可能出现读脏
读提交:用的最多,可能出现幻读,除了外键约束和重复建检查封锁区间,都是记录锁。普通的select是快照读
可重复读:默认,会有间隙锁和临隙锁,锁住范围,防止不可重复读。普通的select是快照读
串行化:隔离级别最高,所有的s
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值