MYSQL 事务 transcation

事务 transcation

什么事务

事务是为了保证一个业务操作的完成性, 一个业务操作 要么 全部成功 、要么 全部失败 、不允许部分成功、部分失败。

事务的四大特性 ACID

  • A 原子性 : 保证业务 是一个 不可再分的 基本操作
  • C 一致性 : 事务的最终目的 就是 为了 保证 数据库 中 数据的一致性 ,即 事务前后 数据是 一致的 ~
  • I 隔离性 : 数据库在 事务环境 中 会给 每一个业务 开辟一个 缓存区 、缓存区 与 缓存区 的 隔离 机制 就是 数据库的 隔离性
  • D 持久性 : 保存 存储在数据库中的数据 具备 持久化(永久性存储) 功能

事务的隔离级别

  • uncommited read 读未提交 : 可以 读取 另一个 事务 未提交的数据
  • commited read 读已提交 (Oracle 数据库的默认隔离级别):
  • repeatable read 可重复读 (MySQL 数据库默认隔离级别) : 通过 锁行 解决 不可重复读 问题
  • serializable read 序列化读 : 通过 锁表 解决 幻读的问题

隔离级别产生的问题

  • 脏读 : 读取 另一个 事务 未提交的数据 ,这种现象 被称为 脏读 (脏读是 一种非常严重的问题,通常数据库不允许出现脏读现象)
  • 不可重复度 : 在一个 事务 二次 读取 同一条记录的时候, 另一个事务 对该条记录 进行了修改, 导致 2次 读取的 结果不一致
  • 幻读 : 在一个 事务 二次 读取 总数量的数量, 另一个事务 在 期间 新增了 一条 记录 、导致 2次 读取 的数量不一致
隔离级别/问题 读未提交 读已提交 可重复读 序列化读
脏读 √ × × ×
不可重复读 √ √ × ×
幻读 √ √ √ ×
相关推荐
爱码少年7 分钟前
Springboot下如何将CSV文件数据导入H2、Mysql数据库表
数据库·mysql·csv
2603_969694851 小时前
【JavaWeb学习记录】MyBatis核心知识点与实战笔记:从入门到动态SQL
笔记·sql·学习·mysql·mybatis·javaweb·学习方法
可乐ea1 小时前
智能体记忆该拆成几层:笔记、记忆表示与注入上下文
服务器·数据库·笔记·ai智能体·提示词工程·上下文工程·记忆系统
阿义有问题2 小时前
MySQL 迁移达梦全流程实战:DTS 七步图解 + 对象名全大写适配(附踩坑清单)
数据库
猫猫不是喵喵.5 小时前
从0到1创建一个微服务项目
java·数据库·微服务·1024程序员节
lsc_blog6 小时前
听到优化风声,先准备能由自己掌控的事
数据库·分布式·中间件·职场和发展·重构
墨痕诉清风6 小时前
SSRF漏洞实战记录+OSS桶命令执行+MCP漏洞
linux·服务器·数据库
Ashe8139 小时前
MySQL 慢日志先别急着加索引:三个指标能拦掉大半误判
数据库
ClouGence9 小时前
最基础的异构数据库 DDL 同步,我们踩过哪些坑?
数据库·mysql·postgresql
羑悻的小杀马特10 小时前
Redis持久化三剑客:RDB二进制快照、AOF文本日志、混合模式如何守护你的数据安全?
数据库·redis·缓存·aof·持久化存储·rdb