6.Mysql中的锁

11 篇文章 1 订阅 ¥99.90 ¥299.90
本文详细介绍了MySQL中解决并发事务问题的两种方案:MVCC和加锁,重点讲解了锁定读操作,包括共享锁和独占锁的概念及实战。此外,讨论了写的锁(DELETE、INSERT、UPDATE)和锁的粒度,特别提到了InnoDB存储引擎的行锁和表锁,以及死锁的演示。
摘要由CSDN通过智能技术生成

为什么mysql需要锁?

一、解决并发事务问题

一个事务进行读取操作,另一个进行改动操作,我们前面已经说过,这种情况下可能会 发生 脏读不可重复读幻读的问题。
解决这三个问题的有两种 可选的解决方案

1.方案一

读操作MVCC,MVCC只适用于。写操作进行加锁。

普通的 select ,比如
select * from student where id = 1;
如果是 select for update 的话,MVCC是不会被使用的。

事务利用MVCC进行的读取操作,被称为一致性读。或者一致性无锁读,也称之为快照读。
但是往往读取的是历史版本数据,所有普通的 select语句 在 READ COMMITTED、REPEATABLE READ隔离级别下都算是一致性读。

一致性读不会对表中的任何记录做 加锁操作,其他事务可以自由的对表中的记录做改动

很明显,采用MVCC方式的话,读-写操作彼此不冲突,性能更高,采用加锁方式的话,读-写操作彼此都需要排队执行,影响性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

往日时光--

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值