数据库-ACID

article/2025/9/29 19:27:35

ACID:原子性、持久性、一致性、独立性
事务的原子性(Atomicity):是指一个事务要么全部执行,要么不执行,也就是说一个事务不可能只执行了一半就停止了。比如你从取款机取钱,这个事务可以分成两个步骤:1划卡,2出钱。不可能划了卡,而钱却没出来。这两步必须同时完成,要么就不完成。
事务的一致性(Consistency):是指事务的运行并不改变数据库中数据的一致性。例如,完整性约束了a+b=10,一个事务改变了a,那么b也应该随之改变,从一个一致性状态变换到另外一个一致性状态。
独立性(Isolation):事务的独立性也有称作隔离性,是指两个以上的事务不会出现交错执行的状态。因为这样可能会导致数据不一致。
持久性(Durability):事务的持久性是指事务执行成功以后,该事务对数据库所作的更改便是持久的保存在数据库之中,不会无缘无故的回滚。

流程图:
在这里插入图片描述
备注:上面没有写道Disk中,写入的是data bufer 即缓存。

Redo log
redo log 的存在是为了解决修改数据后因为随机写同步数据到磁盘效率较低,写到redo log缓冲区后mysql宕机,导致的数据丢失,mysql重启后,从redo log中加载那些commit的数据到磁盘。redo log实现了ACID中的D持久性,就算服务器宕机了数据也不会丢失。redo log日志存储的是某个逻辑操作,如某一数据页的某一行数据的操作,先写日志再写磁盘。

undo log
undo log日志记录了每次修改操作的反向操作,如insert对应delete,delete 对应insert。和redo log都是一样的,顺序写入到磁盘空间中。undo实现了ACID中的A原子性。和mysql MVCC一起实现了隔离性。

bin log日志记录了每一次执行的sql语句。

参考:
https://mp.weixin.qq.com/s/kCLBq8hRDAXCCC4mvzVLkg
https://blog.csdn.net/dengjili/article/details/82468576
https://mp.weixin.qq.com/s/amn1LKgwtKYavSrZCPMyvA
https://mp.weixin.qq.com/s?__biz=MzU4NjQwNTE5Ng==&mid=2247483687&idx=1&sn=92c2e036a3977781e654f5b7644d5951&chksm=fdfa8504ca8d0c129f5aa14eaaeb2d465e73eba215bbcb90c2324e89c73259eb1a368bc5a55b&mpshare=1&scene=24&srcid=0416pIMpkz15JjgLX7kWhfQJ&sharer_sharetime=1587046316466&sharer_shareid=6cf53bc6b76663c6e39bd2553903560e#rd
https://mp.weixin.qq.com/s?__biz=MzA3ODg3OTk4OA==&mid=2651093647&idx=4&sn=4dd0ca72786eda6e0ee21065dad2f376&chksm=844cd714b33b5e02e67cd232e8abcd8c150163d71d41e4c04c21aff14b2cc18d9f0a358cf224&mpshare=1&scene=24&srcid=0417VwUjJZI21sAGdrolS0z3&sharer_sharetime=1587094086441&sharer_shareid=6cf53bc6b76663c6e39bd2553903560e#rd
https://mp.weixin.qq.com/s?__biz=MzA3MjY1MTQwNQ==&mid=2649834405&idx=3&sn=96d39b7a02abfe8b356a0d655bcd0e98&chksm=871ee447b0696d51b27498be9db3b3f2502b307e859bb7b8273102d741dbcd3175e699528419&mpshare=1&scene=24&srcid=0417aWrmC0rW10PwGxwT2yHj&sharer_sharetime=1587095184487&sharer_shareid=6cf53bc6b76663c6e39bd2553903560e#rd
https://mp.weixin.qq.com/s?__biz=MzAxNjM2MTk0Ng==&mid=2247487373&idx=1&sn=736a10c65d4ab905cfc6b821452eeca8&chksm=9bf4bf38ac83362e3032438fcfec4881e6f61e844957a9dc1ef6a6771ad88d2ba90906e6d85b&mpshare=1&scene=24&srcid=0417CXrxxIsRm6vPvhn3voAb&sharer_sharetime=1587095703345&sharer_shareid=6cf53bc6b76663c6e39bd2553903560e#rd


http://chatgpt.dhexx.cn/article/ofl4sTZI.shtml

相关文章

Mysql ACID详解

ACID简述 Atomicity、Durability实现之 (WALredo log) Atomicity 、Isolation实现之 (锁 OR undo logMVCC) 一、前言 主要是后台程序员都会和数据库打交道,最常用的关系型数据库是MySQL,最常用的存储引擎是…

数据库acid实现原理(二)

一、基础概念 事务(Transaction)是访问和更新数据库的程序执行单元;事务中可能包含一个或多个sql语句,这些语句要么都执行,要么都不执行。作为一个关系型数据库,MySQL支持事务,本文介绍基于MyS…

什么是 ACID

MySQL ACID及四种隔离级别的解释 脏读、非重复读、幻读 ACID,是指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性…

MySQL的ACID是如何实现的?

写在前面 本文主要探讨MySQL InnoDB 引擎下ACID的实现原理,对于诸如什么是事务,隔离级别的含义等基础知识不做过多阐述。 ACID MySQL 作为一个关系型数据库,以最常见的 InnoDB 引擎来说,是如何保证 ACID 的。 (Atomi…

数据库的ACID原则

一、 事务的ACID属性 原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 一致性(Consistency) 事务必须使数据库从一个一致性状态变换到另外一个一致性状…

ACID理论

ACID 理论是对事务特性的抽象和总结,方便我们实现事务。可以理解成:如果实现了操作的 ACID 特性,那么就实现了事务。 1. 事务是什么 事务可以看成是一个或者多个操作的组合操作,并且它对这个组合操作提供一个保证,如果…

mysql acid

本文实验的测试环境:Windows 10cmdMySQL5.6.36InnoDB 一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间…

数据库ACID四大特性到底为了啥,一文带你看通透

小伙伴想精准查找自己想看的MySQL文章?喏 → MySQL江湖路 | 专栏目录 说起数据库四大特性,同学们张口就来,ACID!那为什么要ACID?每种特性的原理又是什么?如何实现的?废话少说,哈哥今…

ACID是靠什么来保证的?

首先,什么是ACID? 原子性(A): 原子性就是一个事务内的操作,要么全部成功,要么全部失败。一致性(C) 一致性就是一个正确的结果到另一个正确的结果。换句话说就是一个事…

mysql的ACID

ACID是衡量事务的四个特性: 原子性(Atomicity,或称不可分割性)一致性(Consistency)隔离性(Isolation)持久性(Durability) 原子性:语句要么全执行&…

ACID

细节其实很多。。。 1 到底什么是ACID 首先需要说明的是,在IT领域,很多名词在不同的上下文环境中的语义是不同的。例如某些产品宣称支持“100% ACID”和“强一致性”等。那么,这些名词到底指的是什么?如果不结合具体的语境&#x…

[MySQL]事务ACID详解

专栏简介 :MySql数据库从入门到进阶. 题目来源:leetcode,牛客,剑指offer. 创作目标:记录学习MySql学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录 1. 事务的概念 2. 事务的特性 3.事务控制语法…

数据库的ACID是什么

欢迎大家关注我的公众号【老周聊架构】,Java后端主流技术栈的原理、源码分析、架构以及各种互联网高并发、高性能、高可用的解决方案。 事务在当今的企业系统无处不在,即使在高并发环境下也可以提供数据的完整性。一个事务是一个只包含所有读/写操作成功…

谈谈数据库的ACID

谈谈数据库的ACID 帅宏军 一.事务 定义:所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。 准备工作:为了说明事务的ACID原理,我们使用银行账户及资金…

数据库中的 ACID 属性

💂 个人网站:【海拥】【摸鱼游戏】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 大多数使用数据库的程…

什么是ACID?它的特性是什么?

https://baijiahao.baidu.com/s?id1743501877867119042&wfrspider&forpc ACID是指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性&…

事务ACID理解

事务管理(ACID) 谈到事务一般都是以下四点 原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 一致性(Consistency) 事务前后数据…

vue页面刷新 reload()

首先在vue里配置 在所想添加reload的vue里直接如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190610082256841.png?x-oss-processimage/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTAxMTkxMA…

重识Nginx - 16 Nginx reload流程浅析

文章目录 图解reload流程1.向master程发送HUP号( reload命令)2.master进程校验配置语法是否正确3.master进程打开新的监听端口4.master进程用新配置启动新的worker 进程5.master进程向老worker 进程发送QUIT号6.老worker进程关闭监听句柄,处理完当前连接后结束进程 图解reload流…

vue this.reload 方法 配置, 优于window.reload()的页面刷新

相关网址: https://www.cnblogs.com/yinn/p/9056731.html 1.场景 在处理列表时,常常有删除一条数据或者新增数据之后需要重新刷新当前页面的需求。 2.遇到的问题 1. 用vue-router重新路由到当前页面,页面是不进行刷新的 2.采用window.re…