数据库事务ACID原则 自理解

本文深入解析数据库事务处理的四大核心原则——ACID原则,包括原子性、一致性、独立性和持久性,阐述其对数据完整性和并发控制的重要作用,并探讨脏读、不可重复读及幻读等问题的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文中有一些(自定义 语境 简短 与 便记 )
ACID 是什么?:数据库事务正确执行的 4个原则
A 原子性 C 一致性 I 独立性 D 持久性
这里 我 通过 撰文 与 自解意 的解说
专科描述
(1)原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没发生过一样。
自理解:===== 原子 状态 解意-----1: 被视为不可分割 2: 回到原本

列举:(我的 简约 描述 )
 1 :A   与B 的 账中  分别  有 1000 元,
 2:他们要进行转账的交易
 3: 万一  作故 ----------是 不做提交  的 -===== 即为  回滚

专科描述
(2)一致性:事务开始之前和事务结束后,数据库的完整性约束没有被破坏。

列举:

不论汇款成败,A账 B账 的 总额是2000元。
(3)独立性:事务的执行互不干扰。 延展为 具有安全
(4)持久性:事务执行成功后,该事务对数据库的更改是持久保存在数据库中的,不会被回滚。
---------可以使用日志记录或影子副本来实现。

简短 便记的 : 原 一 独 持 ,对应 英式 :ACID

自解意 的解说 =====:4个维度 解说 指向 事务的特质 是严谨的,
事务这个行为 相应具有现实的物理(正在试着描述 这些)

影响有以下几种可能:

脏读: (就是数据库 的) 一个线程读到 另外一个 线程提交到线程
不可重复读: 一个线程 读到 了 另外一个线程已经 insert 的数据
------- 这2个区别 与解决:
脏读:与 不可重复读 :
解决 : 同一个事务里的 问题 , 通过 第二 隔离机制 来操作 待读完了 下一个接着读

幻读 /虚读: 一个线程读到了 ,另一个线程里已经update 的数据

附:

串行化: 完全把表给锁了 (效率非常低 ,绝对安全)
2/8 原则:对比了 查与读 的 使用率 读查 的为8 ,其他操作 为 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值