MySQL/Read View快照/MVCC/串行化

MySQL 服务端是允许多个客户端连接的,这意味着 MySQL 会出现同时处理多个事务的情况。

问题 正确定义 关键点
脏读(Dirty Read) 一个事务读取到了另一个事务未提交的数据,而另一个事务最终回滚,导致读取的数据不存在 读到了"脏数据"
不可重复读(Non-Repeatable Read) 一个事务内多次读取同一行数据,由于其他事务修改并提交,导致前后读取结果不一致 针对 UPDATE
幻读(Phantom Read) 一个事务内多次查询同一个范围的数据,由于其他事务插入或删除并提交,导致查询结果集不一致 针对 INSERT/DELETE

MySQL 解决并发问题,主要靠 事务隔离机制 + MVCC(多版本并发控制) + 锁机制 。

模拟幻读场景:

相关推荐
奶糖 肥晨1 小时前
mac系统中Java项目环境配置与问题解决全记录|环境准备篇:JDK与Maven安装配置
java·macos·maven
向夏威夷 梦断明暄1 小时前
C# 弃元模式:从语法糖到性能利器的深度解析
服务器·数据库·c#
SimonKing2 小时前
OpenCode 桌面版这 10 天偷偷迭代了 5 个版本,你还在用旧版吗?
java·后端·程序员
糖果店的幽灵2 小时前
大模型测评DeepEval快速入门-RAG指标详解
数据库·人工智能·langgraph·大模型测评·deepeval
Dontla2 小时前
冒烟测试介绍(Smoke Test、BVT构建验证测试、构建验收测试)与回归测试对比、与单元测试对比、与集成测试对比、Cypress
java·单元测试·集成测试
暖和_白开水2 小时前
数据分析agent(十):loguru日志输出优化 和es 启动流程
java·elasticsearch·数据分析
减瓦2 小时前
Gradle 版本演进全景:构建工具的进化密码
java·gradle
玛丽莲茼蒿2 小时前
很难出错的Spring5(十)—— IOC进阶
java·开发语言·jvm