Mysql 事务的特性 —— ACID

ACID

特性作用
Atomicity原子性一个事务里N个操作当成一个整体去执行,一个事务里N个操作要么全部执行,要么都不执行。
Consistency一致性数据一致性 / 约束一致性
Isolation隔离性一个事务的执行不能被其他事务干扰
Durability持久性保存到磁盘
事务特性
一致性
原子性
持久性
隔离性
数据一致性 : 保证数据完整
一个事务内所有操作全部执行/全部不执行
WAL日志先行:undo log/redo log
持久化到磁盘
隔离级别
MVCC:多版本并发控制
LBCC:基于锁的并发控制
record lock - 记录锁
gap lock - 间隙锁
next key lock - 临键锁 = record + gap

一、Atomicity 原子性

undo log则是事务原子性和隔离性实现的基础。

二、Isolation 隔离性

无隔离性所引发的问题
脏读一个事务读取到了另一个事务修改但未提交的数据
不可重复读一个事务中多次读取同一行记录的结果不一致。
幻读一个事务中多次按相同条件查询,结果不一致。后续查询的结果和面前查询结果不同,多了或少了几行记录。
隔离级别解决问题
Read uncommitted读未提交
Read committed读已提交脏读
Repeatable read可重复读不可重复读
Serializable串行读幻读
MVCC

读已提交可重复读 两个隔离级别由MVCC实现。
而MVCC的实现其中就依赖了undo log。

三、Durability 持久性

redo log

Mysql持久化并不会先刷到磁盘,而是先写redo log再持久化到磁盘。
当Mysql故障时,可以读取redo log对数据进行恢复(并非可以全部恢复)。

四、Consistency 一致性

数据一致性:

是由原子性、持久性、隔离性共同保证的结果

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码鹿的笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值