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

数据库 ACID 特性之 -- 原子性 Atomicity

数据库 ACID 特性之 – 原子性 Atomicity

原子事务是一系列不可分割且不可约的数据库操作,这些操作要么全部发生,要么不发生。

原子性的实现基石:undo 日志

undo 日志的作用:

  • 在执行数据修改操作(像 INSERT、UPDATE、DELETE 等)之前,MySQL 会先把修改前的数据状态记录到 undo 日志里。要是事务需要回滚,就可以依据这些日志信息将数据恢复到初始状态。
  • 回滚流程:当事务执行失败或者用户主动发起 ROLLBACK 命令时,数据库会读取 undo 日志,按照相反的顺序执行与修改操作对应的逆操作,以此来撤销已经完成的修改。
create table t1 (c1 int, c2 varchar(20));insert into t1 values (1, 'aaa');
START TRANSACTION;
insert into t1 values (2, 'bbb');
select * from INFORMATION_SCHEMA.INNODB_TRX\G
update t1 set c2 = 'ccc' where c1 = 1;
ROLLBACK; -- 回滚事务,操作不生效

在这里插入图片描述

START TRANSACTION;
insert into t1 values (3, 'cccc');
select * from INFORMATION_SCHEMA.INNODB_TRX\G
COMMIT;
select * from t1;
-- 提交事务

在这里插入图片描述
在这里插入图片描述

http://www.lqws.cn/news/455725.html

相关文章:

  • 软件架构的发展历程——从早期的单体架构到如今的云原生与智能架构
  • shell学习笔记
  • 领码 SPARK 融合平台赋能工程建设行业物资管理革新——数智赋能,重塑中国模式新范式
  • LeetCode 275.H指数 II
  • RPC - 服务注册与发现模块
  • 【C++】哈希表的实现(开放定址法)
  • 电磁场数值仿真技术及天线设计与应用
  • 协程(C++)
  • 设计模式精讲 Day 9:装饰器模式(Decorator Pattern)
  • HTTP与HTTPS深度解析:从明文传输到安全通信的演进之路
  • flask通过表单自动产生get请求的参数、form表单实现POST请求的自动提交
  • 轻量级web开发框架之Flask web开发框架学习:get请求数据的发送
  • HCIP-数据通信基础
  • FFmpeg 超级详细安装与配置教程(Windows 系统)
  • Java八股文——消息队列「场景篇」
  • OSI网络通信模型详解
  • linux操作系统---小白玩转shell脚本
  • Clang Static Analyzer 使用教程:本地 + CMake + GitHub Actions 自动静态分析实战
  • Vulkan官方教程(一)
  • 服务器手动安装并编译R环境库包:PROJ→RGDAL
  • Spring AI 项目实战(九):Spring Boot + Spring AI Tools + DeepSeek 进阶实战——调用第三方系统(附完整源码)
  • 小白的进阶之路系列之十七----人工智能从初步到精通pytorch综合运用的讲解第十部分
  • OneCode 核心组件——APICaller介绍
  • 医疗机器人的精密控制核心:计算机视觉与运动学的深度协同
  • GDI绘制
  • 漂流瓶小游戏流量主微信小程序开源
  • C#中的QUIC实现
  • Rust 学习笔记:Unsafe Rust
  • QT的一些介绍
  • Abel 变换,离散型分部积分