事务的隔离级别(高频面试题)

本文详细介绍了MySQLInnoDB存储引擎的四种事务隔离级别,包括读未提交、读已提交、可重复读和串行,以及它们在解决并发问题上的作用和性能影响。串行级别虽然解决所有问题但性能低,通常不推荐。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

今天来讲一讲事务的隔离级别。

有关事务的基本介绍大家可以看这篇
MySQL事务(基础入门)(高频考点)

为了实现事务的隔离性,需要加锁,但是加锁会影响到性能,此时我们使用 MVCC 机制解决性能的问题。


事务的隔离级别

MySQL的存储引擎 InnoDB 有四种隔离级别,其中Innodb 默认的隔离级别是可重复读,各级的隔离级别解决不一样的事务并发情况。

事务的隔离级别有四种

  1. 读未提交
  2. 读已提交
  3. 可重复读
  4. 串行

其中隔离级别的强度是:串行>可重复读>读已提交>读未提交

读未提交

读到事务未提交的数据,这种隔离级别会出现“脏读、不可重复读、幻读”。

读已提交

读到事务已提交的数据,这种隔离级别会出现“不可重复读、幻读”。解决了“脏读”。

可重复读

两次读取的数据一致,这种隔离级别会出现“幻读”。解决了“脏读、不可重复读”。innodb 默认的隔离级别

串行

最高的隔离级别,但是性能极慢,一般不使用。解决了“脏读、不可重复读、幻读”。
一般我们不支持使用串行,因为性能太慢了。


总结

事务的隔离级别有四种:1. 读未提交2. 读已提交3. 可重复读4. 串行
其中隔离级别的强度是:串行>可重复读>读已提交>读未提交
以此解决对应的问题。
读已提交解决脏读
可重复读解决脏读,不可重复读,innodb 默认的隔离级别
串行解决脏读,不可重复读,幻读

一般我们不支持使用串行,因为性能太慢了。


有启发点个赞 🌹

好文章不要错过,最近給大家分享的文章

MySQL的基础知识

1.MySQL的基础架构
2.SQL语句的执行流程
3.MySQL 的存储引擎

MySQL 索引

1.MySQL索引入门(一文搞定)
2.MySQL索引面试题(高频)

MySQL 事务
1.MySQL事务(基础入门)(高频考点)

预计下篇分享:事务相关面试题或 MVCC 机制的实现

本篇参考:小林coding

我是小辉,正在进行 Java 实习的 24 届应届毕业生。欢迎关注,持续分享,包括但不限于技术文章。全网同名…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Java编程小辉

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

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

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

打赏作者

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

抵扣说明:

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

余额充值