it编程 > 数据库 > Mysql

MYSQL事务(中)之隔离性与一致性原理详解

22人参与 2026-08-04 Mysql

0 ~> 隔离性与一致性知识图谱

mysql事务:隔离性与一致性
├─ 1 ~> 隔离性基础认知
│  ├─ 1.1 数据库三类并发场景
│  ├─ 1.2 隔离性的本质定义
│  └─ 1.3 隔离级别的设计逻辑
├─ 2 ~> 四种事务隔离级别详解
│  ├─ 2.1 读未提交(read uncommitted)
│  ├─ 2.2 读提交(read committed)
│  ├─ 2.3 可重复读(repeatable read)
│  └─ 2.4 串行化(serializable)
├─ 3 ~> 隔离级别的查看与设置
│  ├─ 3.1 全局与会话隔离级别差异
│  └─ 3.2 标准sql语法
├─ 4 ~> 并发异常与对应关系
│  ├─ 4.1 三类读异常
│  │  ├─ 脏读
│  │  ├─ 不可重复读
│  │  └─ 幻读
│  ├─ 4.2 两类更新丢失
│  └─ 4.3 隔离级别-问题对照表
├─ 5 ~> 隔离性实现原理基础
│  ├─ 5.1 mvcc多版本并发控制
│  └─ 5.2 锁机制基础
├─ 6 ~> 事务一致性(consistency)
│  ├─ 6.1 一致性的定义
│  └─ 6.2 aid与c的因果关系
└─ 7 ~> 原笔记技术审计与纠错

1 ~> 隔离性基础认知

1.1 数据库三类并发场景

1.2 隔离性的本质定义

1.3 隔离级别的设计逻辑

2 ~> 四种事务隔离级别详解

2.1 读未提交(read uncommitted, ru)

2.2 读提交(read committed, rc)

2.3 可重复读(repeatable read, rr)

2.4 串行化(serializable)

3 ~> 隔离级别的查看与设置

3.1 全局与会话隔离级别差异

3.2 标准 sql 语法

查看隔离级别

-- 查看全局隔离级别
select @@global.tx_isolation;
-- 查看当前会话隔离级别
select @@session.tx_isolation;
-- 简写形式,默认查看会话隔离级别
select @@tx_isolation;

兼容性说明:mysql 8.0 版本中 tx_isolation 变量已被废弃,替换为 transaction_isolation;5.7 版本中使用 tx_isolation 会触发警告,开发与面试中需注意版本差异。

设置隔离级别

-- 设置当前会话隔离级别
set session transaction isolation level {read uncommitted | read committed | repeatable read | serializable};
-- 设置全局隔离级别
set global transaction isolation level {read uncommitted | read committed | repeatable read | serializable};

4 ~> 并发异常与对应关系

4.1 三类读异常

4.1.1 脏读(dirty read)

4.1.2 不可重复读(non-repeatable read)

4.1.3 幻读(phantom read)

4.2 两类更新丢失

4.3 隔离级别 - 问题对照表

隔离级别脏读不可重复读幻读实现方式并发性能
读未提交存在存在存在几乎无锁最高
读提交不存在存在存在mvcc(语句级快照)
可重复读(innodb)不存在不存在基本不存在 *mvcc(事务级快照)+ next-key 锁
串行化不存在不存在不存在全量加锁串行执行最低

*:标准 sql 规范中 rr 级别存在幻读;mysql innodb 的 rr 级别在快照读场景无幻读,当前读场景通过 next-key 锁防止幻读。

5 ~> 隔离性实现原理基础

5.1 mvcc(多版本并发控制)

5.2 锁机制基础

6 ~> 事务一致性(consistency)

6.1 一致性的定义

6.2 aid 与 c 的因果关系

结论:原子性(atomicity)、隔离性(isolation)、持久性(durability)是「因」,一致性(consistency)是「果」

到此这篇关于mysql事务(中)之隔离性与一致性原理详解的文章就介绍到这了,更多相关mysql隔离性与一致性内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

您想发表意见!!点此发布评论

推荐阅读

MySQL数据库语法之库的操作方法

08-04

windows系统下装两个不同版本mysql排坑指南

08-04

MySQL中EXPLAIN分析执行计划

08-05

MySQL语法库的操作大全

08-05

浅谈MySQL日志分析

08-05

MySQL路由器的具体使用

08-05

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论