当前位置: 首页 > article >正文

MySQL事务介绍

一、一个典型的事务场景 

步骤操作描述SQL 语句
1开启事务,确保转账操作的原子性START TRANSACTION;
2从用户 A 的账户中扣除 100 元UPDATE account SET balance = balance - 100 WHERE user = 'A';
3向用户 B 的账户中添加 100 元UPDATE account SET balance = balance + 100 WHERE user = 'B';
4检查用户 A 的账户余额是否足够,若不足则回滚事务SELECT balance FROM account WHERE user = 'A';<br>若余额不足,执行ROLLBACK;
5若转账成功,提交事务使更改永久生效COMMIT;

二、事务的特性

特性描述实现方式
原子性(Atomicity)事务是不可分割的工作单位,要么全部执行,要么全部不执行通过Undo log来实现原子性
一致性(Consistency)事务执行前后,数据库从一个一致状态转换到另一个一致状态通过Redo log和Undo log来实现一致性
隔离性(Isolation)并发执行的事务之间互不干扰,一个事务的执行不能被其他事务干扰

通过锁来实现写与写之间事务的隔离性

MVCC来实现读和写的隔离性

持久性(Durability)事务一旦提交,其结果是永久性的,即使系统发生故障,数据也不会丢失Redo log实现了MySQL的持久性

三、事务在数据库中的作用

  • 数据一致性
  • 并发控制
  • 故障恢复
  • 应用程序逻辑的一致性

http://www.kler.cn/a/591045.html

相关文章:

  • Vala编程语言教程-运算符
  • 算法刷题记录——LeetCode篇(3) [第201~300题](持续更新)
  • 蓝桥杯16
  • HTML 样式与布局初体验:学习进程中的关键节点(二)
  • 【每日论文】New Trends for Modern Machine Translation with Large Reasoning Models
  • 详细介绍HFONT结构体
  • 科技资讯杂志科技资讯编辑部科技资讯杂志社2025年第2期目录
  • 出租车数据可视化分析-大数据-实训大作业
  • [HelloCTF]PHPinclude-labs超详细WP-Level 5-http协议-2
  • Doris vs Elasticsearch:全维度对比与实际成本案例解析
  • Linux驱动开发实战(五):Qt应用程序点RGB灯(保姆级快速入门!)
  • 2000-2019年各省地方财政税收收入数据
  • 【HCIA-晴天老师】15-VLAN的Hybrid配置笔记
  • LeetCode 78.子集
  • Java Stream 流的介绍
  • 【Servo】一个简单的伺服驱动器嵌入式架构,联想
  • JVM G1内存管理核心概念解析:Region、Card Table、CSet与RSet
  • 机试准备第19天
  • Java1.8与testNg兼容问题:bad class file和SocketTimeoutException: Read timed out
  • synchronized底层加锁原理