mysql的ACID

article/2025/9/29 20:46:49

ACID是衡量事务的四个特性:

  • 原子性(Atomicity,或称不可分割性)
  • 一致性(Consistency)
  • 隔离性(Isolation)
  • 持久性(Durability)
  • 原子性:语句要么全执行,要么全不执行,是事务最核心的特性,事务本身就是以原子性来定义的;实现主要基于undo log
  • 持久性:保证事务提交后不会因为宕机等原因导致数据丢失;实现主要基于redo log
  • 隔离性:保证事务执行尽可能不受其他事务影响;InnoDB默认的隔离级别是RR,RR的实现主要基于锁机制(包含next-key lock)、MVCC(包括数据的隐藏列、基于undo log的版本链、ReadView)
  • 一致性:事务追求的最终目标,一致性的实现既需要数据库层面的保障,也需要应用层面的保障

脏读、不可重复读和幻读

1)脏读:当前事务(A)中可以读到其他事务(B)未提交的数据(脏数据),这种现象是脏读。举例如下(以账户余额表为例):

(2)不可重复读:在事务A中先后两次读取同一个数据,两次读取的结果不一样,这种现象称为不可重复读。脏读与不可重复读的区别在于:前者读到的是其他事务未提交的数据,后者读到的是其他事务已提交的数据。举例如下:

(3)幻读:在事务A中按照某个条件先后两次查询数据库,两次查询结果的条数不同,这种现象称为幻读。不可重复读与幻读的区别可以通俗的理解为:前者是数据变了,后者是数据的行数变了。举例如下:

事务隔离级别

 

 Mysql的InnoDB默认的隔离级别是RR

事务实现原理:

  • 事务的原子性是通过 undo log 来实现的
  • 事务的持久性性是通过 redo log 来实现的
  • 事务的隔离性是通过 (读写锁+MVCC)来实现的

而事务的终极大 boss 一致性是通过原子性,持久性,隔离性来实现的。

原子性,持久性,隔离性折腾半天的目的也是为了保障数据的一致性!

总之,ACID只是个概念,事务最终目的是要保障数据的可靠性,一致性。


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

相关文章

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…

Nginx reload

解释 /usr/local/nginx/sbin/nginx -s reload 用过多次这条命令,一直以为是重启Nginx,今天有幸看了下Nginx官方文档介绍这条命令 Nginx服务不会终止,主进程检查配置,应用配置的过程。主进程会启动一个新的工作进程处理新来的请求…

layui table.reload()

使用table.reload()重载去搜索特定列 html <div class"searchTable" id"searchTable"><div class"layui-inline"><input class"layui-input layui-inline" id"badge" placeholder"badge" autoc…

为什么 NGINX 的 reload 命令不是热加载?

这段时间在 Reddit 看到一个讨论&#xff0c;为什么 NGINX 不支持热加载&#xff1f;乍看之下很反常识&#xff0c;作为世界第一大 Web 服务器&#xff0c;不支持热加载&#xff1f;难道大家都在使用的 nginx -s reload 命令都用错了&#xff1f;带着这个疑问&#xff0c;让我们…

Unity 手动编译 Reload脚本 减少等待时间

Unity 手动编译 Reload 脚本 这是个自定义reload domain工具,加快工作流,减少等待.测试版本是Unity2021,理论上来说2020以上都可. 脚本地址:UnityManualReload (github.com) 在Unity中遇到的问题 在unity工作流中,修改脚本->编译脚本->reload domain(重载域)-> 进…

layui table reload 重载

在所有记录中通过姓名搜索需要的数据&#xff0c; 搜索记录为空时返回所有记录 HTML&#xff1a; 方法渲染table&#xff1a; 表格重载&#xff1a; reload将再次访问servlet 第一次访问&#xff1a; reload访问&#xff1a; ennn&#xff0c;然后就是后台操作了&#xff0c;我…

搬运 auto_reload preload

原文&#xff1a; STM32CubeMX配置时钟中的auto-reload precload_飞由于度的博客-CSDN博客 STM32的定时器开发基础的时候&#xff0c;产生了一个疑问&#xff0c;这里不需要使能自动重装载吗&#xff1f; 带着这个疑问我去查了一下《STM32 HAL 库开发实战指南》&#xff0c;在…

4、Nginx命令(reload很重要)

Nginx命令&#xff08;reload很重要&#xff09; ./nginx -s reload &#xff1a;当我们更改了配置文件&#xff0c;我们都要重新加载我们的配置文件也就是reload例如我们的更改端口号变80位8080 连接不上的操作

js 刷新当前页面的方法 reload() , replace()的简单使用

本文为大家介绍三种 js 刷新当前页面的方法&#xff0c;我是在vue实例下写的&#xff1a; 添加定时器是为了直观看到刷新效果&#xff08;每次刷新都会重置为0&#xff09;&#xff1b; reload() 方法; replace() 方法; 页面自动刷新; reload() 方法 reload()方法用于刷新当…

SVN 服务器的搭建

当做大的项目是&#xff0c;svn是代码管理的好工具&#xff0c;如果是用自己的服务器&#xff0c;那么需要搭建SVN服务器。 Subversion是一款非常优秀的svn服务器工具&#xff0c;笔者采用VisualSVN server &#xff0c;因为它集成了apache,不用再进行过多的配置。 首先下载安…

SVN服务器搭建与使用

TortoiseSVN&#xff08;1.9.5&#xff09;与VisualSVN Server搭建SVN版本控制系统&#xff08;中文版&#xff09; 参考文献&#xff1a;http://www.cnblogs.com/xing901022/p/4399382.html 本片主要介绍如何搭建SVN版本控制系统&#xff0c;主要使用工具&#xff1a; 1. 服…