mysql的4种事务隔离级别
  ajtZ4dACL54c 2023年11月02日 62 0


博客园里有篇文章谈到mysql的4种事务隔离级别,哪4种?

1、未提交读(read uncommitted)
2、已提交读(read committed)
3、可重复读(repeatable read)
4、串行化(serializable)

文章解说了为何oracle、sql server默认的隔离级别都是“已提交读”,而mysql则默认是“可重复读”。但可惜这4种事务隔离级别有什么区别,却说的不够清楚。或者说,我没能读懂,又到网上搜了一下,做个笔记。

1、未提交读
也称为脏读吧。甲乙两人一起编辑同一份表,事务尚未提交,但彼此已经可以看到修改的结果。

2、已提交读
只有事务提交了,别人才能看到自己的修改结果。

3、可重复读
在一个事务中,一份数据,不管读多少遍,结果都是一样的。
这比“已提交读”更严格一点了。甲开启了一个事务,在事务中对一份数据前后读了2遍,期间乙对该数据进行了编辑并提交,“已提交读”级别中,前后读取的结果会不一样;而“可重复读”级别里,一个事务里面,甲看到的都不变。
不过,这是好事还是坏事,很难说。如果是我,我选“已提交读”。可重复读,典型的两耳不闻窗外事,真实数据都已经变了,你还关在自己的事务里爽,可能会误导;事务完了以后,对真实的结果可能还会大吃一斤。

4、串行化
这就简单粗暴了,本来并行的数据库,只能排队进行操作了。不管读也好,修改也好,都得排队。结果当然绝对正确,但这效率,嗯。

参考资料:
​​​互联网项目中mysql应该选什么事务隔离级别​

​五分钟搞清楚MySQL事务隔离级别​


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  20xfzlOvosRH   2023年12月05日   13   0   0 mysql数据库
ajtZ4dACL54c
最新推荐 更多