mysql事物隔离级别详解(超通俗易懂)

mysql有四种隔离级别

一,读未提交(read uncommitted)

二,读已提交(read committed)

三,可重复读

四,序列化

 

 

一,读未提交

  你在修改表中数据的时候,你可以看到另一个人没有提交的数据。这是一种安全级别最低的隔离级别,目前这种级别只是理论存在,因为目前基本没有数据库采用这种隔离方式,这种隔离级别会产生的问题就是dirty read(脏读)

二,读已提交(rc)

  很好理解,假如此时,你和另外一个人同时操作同一张表,有一条数据是id为1 姓名为小明的数据,此时另外一个人对这个数据修改为id为2 姓名为小红(没有提交前),你再次查询得到的数据一直都是1 小明,而当这个人修改完后输入commit提交后,此时你在查询时,数据则会变为2 小红,这就是读已提交,意思其实和字面意思一样,只能读取当已提交的数据。这个隔离级别解决了脏读的问题,但是缺点就是不可重复读

三 可重复读(rr)

  这是mysql的默认隔离级别,与第二种不同的是,此时如果和你操作一张表的另一个人commit后,你select查询后依旧是1 小明,只有当你自己commit之后,当前事务完全结束后,你才可以看到修改后的值,这种隔离级别解决了不可重复读的问题,但是出现了一种新的问题,就是幻读,什么是幻读呢?举个例子,当你查询某条数据时,可能显示的是1 小明,但是此时可能有个人正好修改好了这条数据,当你提交后再次查询时,你会发现变成了2 小红,这个时候你可能会觉得不对啊,刚才我刚查询的时候明明不是2 小红啊,明明是1小明啊,是我产生幻觉了吗?这就是幻读。

四 序列化

  最安全的默认隔离级别,但是并不支持并发,相当于单线程,不允许并发操作数据库,事务开启后,只允许一个人进行操作,直到提交后下一个人才可以进入。


__EOF__

本文作者汪成阳
本文链接https://www.cnblogs.com/wangchengyang/p/15665196.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   非非非常帅的辰  阅读(1156)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏