首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【SQL/MySQL 事务的隔离级别】什么是RU、RC、RR?

【SQL/MySQL 事务的隔离级别】什么是RU、RC、RR?

作者头像
flos chen
发布2026-01-23 15:02:03
发布2026-01-23 15:02:03
1440
举报

如标题所示,看到RU、RC、RR把人整懵圈了,知道代表的是事务的隔离级别,但具体含义却记不得了,所以记录、回顾一下。

SQL中的事务隔离级别定义了事务在并发环境下如何相互隔离,以避免并发事务之间的各种问题,如脏读、不可重复读和幻读。不同的数据库管理系统可能支持不同的隔离级别,但大多数遵循SQL标准的数据库系统,包括MySQL和PostgreSQL,都支持以下四个隔离级别:

  1. 读未提交(Read Uncommitted)
    • 在这个隔离级别下,事务可以读取到其他事务未提交的数据。这意味着可能会读到“脏数据”,即其他事务中途放弃的修改数据。
    • 称呼:在实际应用中,这个级别有时被称为“脏读”级别,因为它允许读取到其他事务未最终确定的数据。
  2. 读已提交(Read Committed)
    • 事务只能读取到其他事务已经提交的数据。这个级别可以避免脏读,但是不能避免不可重复读,因为同一事务的两次读取之间,其他事务可能已经提交了新的数据。
    • 称呼:在实际应用中,这个级别有时被称为“读已提交”级别,强调只能读取到已经提交的数据。
  3. 可重复读(Repeatable Read)
    • 事务在整个过程中可以多次读取到相同的数据集,即使其他事务提交了新的数据。这个级别可以避免脏读和不可重复读,但是不能避免幻读,即在事务过程中新插入的数据。
    • 称呼:在实际应用中,这个级别有时被称为“可重复读”级别,强调在同一个事务中多次读取的数据是一致的。
  4. 串行化(Serializable)
    • 这是最高的隔离级别,事务会完全隔离,事务的执行就像是在串行环境中一样,事务依次逐个执行,避免了脏读、不可重复读和幻读。
    • 称呼:在实际应用中,这个级别有时被称为“串行”级别,因为它通过完全隔离事务来保证数据的一致性。

在实际应用中,选择哪个隔离级别取决于业务需求和性能考虑。较低的隔离级别(如读未提交和读已提交)可能会提高并发性能,但牺牲了数据的一致性。较高的隔离级别(如可重复读和串行化)提供了更强的数据一致性保证,但可能会降低并发性能。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-01-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档