专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

事务的隔离级别?(spring事务的隔离级别)

ins518 2025-07-14 17:23:35 技术文章 7 ℃ 0 评论

数据库事务的隔离级别分为读未提交、读已提交、可重复读、串行化。每一个隔离级别都是在前一个级别上面的强化。

设置不同的隔离级别是为了解决脏读、幻读和不可重复读的问题的。

读未提交,read uncommit,意思是一个事务可以读到另外一个事务没有提交的数据。那么这时候可能有前面说的所有问题。

读已提交,read commit,意思是一个事务处理的中间态数据只有提交了,才能够被另外一个事务看到。这个是oracle的默认数据库级别。这个级别可以解决脏读的问题,而这个级别也能够满足大部分的场景了。

可重复读,reapeatable read,这个级别是mysql默认的隔离级别。读已提交的问题是如果一个事务正常提交了,但是另外一个事务是在提交前和提交后统计了两次数据量,就可能出现查询结果不一致的问题,如果想要解决这个问题就需要使用可重复读的隔离级别。这个级别相当于在每一个事务开始查询的时候,设置了一个快照,后面不管数据怎么变化,这个事务查询几次都是从这个快照的地方获取数据,就解决了幻读的问题。

串行化,serializable,隔离的最高级别。这个级别不仅解决了幻读,还解决了不可重复读的问题。在这个级别下,一个事务中不管查询几次数据,都会查询到相同的数据结果。

------------------------

欢迎访问个人网站:

https://lessthinker.com

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表