MySQL事务

本文深入解析MySQL事务的定义,探讨其原子性、一致性、隔离性和持久性的核心概念,以及事务与数据库底层数据的关系,提供事务隔离级别的详细解读和事务提交与回滚的操作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我的博客:https://meloor.gitee.io/2020/11/14/MySQL事务


参考博客讲的非常清楚,下面是补充的笔记

事务定义

事务(Transsction)

  • 事务:一个最小的不可再分的工作单元;通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元)
  • 一个完整的业务需要批量的 DML(insert、update、delete)语句共同联合完成 (也有说法包含 selecet?)
  • 事务只和 DML 语句有关,或者说DML 语句才有事务。这个和业务逻辑有关,业务逻辑不同,DML 语句的个数不同
  • DDL:
    数据库模式定义语言 DDL(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言。主要由 create(添加)、alter(修改)、drop(删除)和 truncate(删除) 四个关键字完成。
  • DML(Data Manipulation Language)数据操纵语言命令使用户能够查询数据库以及操作已有数据库中的数据。  如 insert,delete,update,select(插入、删除、修改、检索)等都是 DML.

事务四大特征(ACID)

它这里原子性和一致性讲错了,下面为更正过的:
参考博客

  • 原子性(A)
    原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。

  • 一致性©
    一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态

    转账 来说,假设用户甲和用户乙两者的钱加起来一共是 5000,那么不管甲和乙之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是 5000,这就是事务的一致性。

  • 隔离性(I) :事务 A 和事务 B 之间具有隔离性, 隔离级别 有四个:

  • 持久性(D) :是事务的保证,事务终结的标志(内存的数据持久到硬盘文件中)

  • 在我的理解中,原子性、隔离性、持久性都是为了保障一致性而存在的,一致性也是最终的目的

事务与数据库底层数据

在事物进行过程中,未结束之前,DML 语句是不会更改底层数据,只是将历史操作记录一下,在内存中完成记录。只有在事物结束的时候,而且是成功的结束的时候,才会修改底层硬盘文件中的数据

提交与回滚

  • 在 MySQL 中,默认情况下,事务是自动提交的,也就是说,只要执行一条 DML 语句就开启了事物,并且提交了事务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值