世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。ACID A原子性:一个事务只有执行成功和失败回滚两种状态,没有中间态。 C一致性:事务执行成功或失败,都不会破坏数据库的完整性约束。如,A给B转账,A转成功了,B一定会收到。 I隔离性:一个事务对一个数据进行操作时,其他事务不允许对同一个数据进行操作。 D持久性:事务执行完成后,对数据所做的操作持久的保存在数据
转载
2024-01-29 12:43:58
25阅读
这是在网上copy下来的ACID的概念,可以直接跳过看后面:1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破
转载
2024-01-11 12:35:33
15阅读
写在前面ACID隔离性锁粒度行锁的种类行锁的实现算法原子性持久性一致性总结参考写在前面❝本文主要探讨MySQL InnoDB 引擎下ACID的实现原理,对于诸如什么是事务,隔离级别的含义等基础知识不做过多阐述。❞基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、
转载
2024-03-26 11:44:32
65阅读
MYSQL InnoDB 实现 ACID 原理ACIDAtomicty : 原子性Consistency: 一致性Isolation: 隔离性Duraion: 持久性按照严格的标准, 只有同时满足 ACID 的特性才算做事务, 但是在各个数据库中能真正实现 ACID 的事务很少, 为了性能比如 MYSQL 默认是可重复读 READ REPEAT 不满足隔离性(但是后面又用多版本并发控制 MVCC解
转载
2023-09-05 21:29:54
55阅读
很久没更新博客了,这次简单聊一下我自己对mysqlACID原理的理解名词解释A(atomicity):原子性C(consistency) :一致性I(isolation):隔离性D(durability):持久性ACID的实现原理A(atomicity):使用undo log日志实现,原子性要么都成功,要么都失败,会记录每一次的操作记录的undo log日志,后面发生异常时在从undo log把事
转载
2023-06-14 21:16:41
64阅读
文章目录1 问题背景2 事务3 原子性4 持久性4.1 redo log的存在背景4.2 为什么将redo log的数据写到磁盘比将Buffer中的数据写到磁盘快?4.3 redo log什么时候同步到磁盘里去?5 隔离性5.1 含义5.2 情况6 总结 1 问题背景前面MySQL锁之InnoDB锁实战用sql语句演示了MySQL锁导致的现象,从现象去认知了MySQL锁到底是怎么样的。在本博客M
转载
2023-11-07 05:41:01
52阅读
“
事务是 MySQL 等关系型数据库区别于 NoSQL 的重要方面,是保证数据一致性的重要手段。本文将首先介绍 MySQL 事务相关的基础概念,然后介绍事务的 ACID 特性,并分析其实现原理。MySQL 博大精深,文章疏漏之处在所难免,欢迎批评指正。MySQL 事务基础概念事务(Transaction)是访问和更新数据库的程序执行单元;事务中可能包含一个或多个 sql 语句,这些语句要么都
转载
2024-09-30 16:00:48
45阅读
ACID模式是一组数据库设计原则强调的是,对于业务数据和关键任务应用重要的可靠性方面。MySQL包含诸如InnoDB存储引擎严格遵循ACID模型,因此数据不会损坏,结果也不会因软件崩溃和硬件故障等异常情况而失真。当您依赖于ACID的功能时,您无需重新发明一致性检查和崩溃恢复机制。如果您有其他软件保护措施,超可靠的硬件或可以容忍少量数据丢失或不一致的应用程序,则可以调整MySQL设置以牺牲一些ACI
转载
2023-10-20 11:50:40
140阅读
# 保证Mysql的ACID特性
在数据库系统中,ACID是指数据库事务应满足的四个特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。Mysql作为一种常用的关系型数据库管理系统,如何保证这四个特性是非常重要的。
## 问题描述
假设我们有一个在线商城系统,用户可以在系统中下单购买商品。我们希望确保每个订单的
原创
2024-03-24 03:59:49
43阅读
mysql 如何实现 ACID
随着业务数据量的激增,确保数据库的事务性和数据一致性变得愈加重要。MySQL作为一款流行的关系型数据库系统,其对ACID(原子性、一致性、隔离性、持久性)的支持直接关系到最终用户的数据体验。本文将深入探讨MySQL如何实现ACID特性,分析其背后的原理,并提供相应的解决方案。
## 问题背景
在企业级应用中,数据一致性对业务的健康发展至关重要。MySQL为应用
什么是事务?事务就是将多个操作组合到一起完成,要么全部成功,要么全部失败,具体到数据库就是一组原子性的SQL查询,事务内的语句要么全部成功,要么全部失败。转账的例子,小张给小王转账200块,小张这边要减200,小王那边要加200,没有事务的话如果小张减200成功,小王加200失败,那么小张给小王说我明明转账给你了,你却说没搜到,然后两个人就开始掐架了。有事务之后,小王那边加两百失败,那么整个交易是
转载
2023-11-27 00:25:53
42阅读
ACID简述 Atomicity、Durability实现之 (WAL+redo log) Atomicity 、Isolation实现之 (锁 OR undo log+MVCC)一、前言 主要是后台程序员都会和数据库打交道,最常用的关系型数据库是MySQL,最常用的存储引擎是InnoDB。InnoDB又以其支持事务而大量应用,事务的核心就是ACID。网上也有很多关于ACID的文章,但关于实现原理
转载
2023-11-11 08:59:22
58阅读
一、ACID
1.简介ACID,是指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。1.原子性atomicity:在同一个事务内部的一组操作必须全部执行成功(或者全部失败
转载
2023-06-23 15:32:30
84阅读
Duration 持久性:基于Redolog innoDb引擎层特有 记录内容:数据页的改变 空间大小:追加写; 作用:灾难恢复; 实现方式:WAL(提交日志的时候,先写重做日志,再修改对应的页,避免丢失); 原理: 有更新的记录,先写到redolog-buffer(内存里面),当一定情况(例如内存不够、其他事务提交、当前事物提交 )落盘到磁盘中(顺序IO),落到redolog 里面,InnoDB
转载
2024-02-03 23:34:13
36阅读
目录7、事务的ACID特性8、事务的生命周期(事务控制语句)8.1 事务的开始8.2 事务的结束8.3 自动提交策略(autocommit)8.4 隐式提交语句8.5 隐式回滚8.6 开始事务流程8.7 事务回滚事务点9. InnoDB 事务的ACID如何保证?9.0 一些概念 9.1 redo log9.1.1 Redo是什么?9.1.2 作用是什么?9.1.3 redo日志位置9.1
转载
2024-01-11 13:52:52
18阅读
# MySQL事务ACID的实现方案
MySQL采用ACID(原子性、一致性、隔离性和持久性)事务来确保数据的完整性和一致性。在本文中,我们将探讨如何使用MySQL的事务来解决一个具体的问题。
## 问题描述
假设我们有一个在线商店,用户可以在该商店购买商品。我们的问题是,当用户购买商品时,我们希望确保以下几点:
1. 将订单信息插入到`orders`表中。
2. 更新商品的库存量。
3.
原创
2023-07-07 09:40:20
77阅读
ACID 特性在关系型数据库管理系统中,一个逻辑工作单元要成为事务,必须满足这 4 个特性,即所谓的 ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。1 原子性原子性:事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。修改—》Buffer Pool修改—》刷盘。可能会有下面两种情况:事务提交
转载
2023-09-21 08:50:07
97阅读
前文回顾Mysql 索引特点MQ消费端如何保证幂等性?MySQL使用B+Tree的数据结构,尽可能少的层级或IO读取量的情况下,能够缓存或存储更多数据量且达到快速查询的效果。在进行索引存储的时候,索引的数据要放到磁盘里面,不可能将磁盘里面的所有文件一口气读到内存里面,因此要使用分块读取的方式,而操作系统本身进行内存和磁盘交互的时候是以页为单位的,按照页的整数倍作为某一个磁盘块来进行数据的读取。在进
转载
2023-11-27 23:04:42
52阅读
hello,大家好,我是张张,「架构精进之路」公号作者。说起MySQL事务处理的四大特性,相信大家都可以张口就来:ACID!那 MySQL是如何实现ACID的?每种特性的原理又是如何实现的?今天,本文笔者主要探讨MYSQL InnoDB引擎下的ACID实现原理,对事务、锁以及隔离级别等内容统一进行回顾一下。1、ACID特性原子性(Atomicity)单个事务,为一个不可分割的最小工作单元,整个事务
转载
2023-08-29 19:33:39
273阅读
我从维基百科翻译的。翻译水平有限: 旨在即使在发生错误,断电等情况下也可以确保有效性。在数据库的上下文中,这是指一系列数据库操作,它们可以满足ACID属性(并且可以将这些属性视为对数据的单个逻辑操作)称为事务。例如,从一个银行帐户到另一个银行帐户的资金转移,即使涉及多个更改,例如从一个帐户借记而向另一个帐户贷记,也只是一次交易。 1983年, Andreas Reuter和TheoHärder
转载
2023-07-16 22:28:40
54阅读