美文网首页
MYSQL 事务特性

MYSQL 事务特性

作者: 蓉漂里的小白 | 来源:发表于2021-02-03 15:30 被阅读0次

Mysql事务包含ACID四个特性,A: 原子性, C:一致性, I:隔离性, D:持久性

原子性

定义:事务执行要么全部成功,要么全部失败,不能出现部分成功部分失败

实现:undo日志

Undo日志:

是一个逻辑日志,记录的是事务执行前的数据状态。在事务执行前先把数据都备份一份到undo日志中,然后再执行事务操作。如果执行过程出了异常或错误进行rollback 系统就会将undo日志中的数据恢复到事务执行前的状态。

例如:事务执行了insert 语句 -- undo日志就记录一条Delete语句

事务执行了update + 10语句 -- undo日志就记录一条update - 10语句

持久性

定义:事务一旦提交了,对数据的修改就是永久性的

实现:redo日志

Redo日志:

记录的是事务执行完成后的数据状态,在事务提交前只需要将redo 日志持久化到磁盘就可以了,不需要持久化具体的数据。如果在持久化数据时候系统奔溃了就只需要将redo日志中的数据恢复到数据系统中就ok了。


image.png

隔离性

定义: 事务之间的执行互不影响

实现:锁

事务隔离级别:read uncommit, read commit, repeatable read, serlalizable

Read uncommit: 可以读到其他事务未提交的结果

read commit: 可以避免脏读

repeatable read: 可以避免脏读,不可以重复读

serlalizable:可以避免脏读,幻读,不可以重复读

脏读:事务A读到了事务B还没有提交的数据

幻读:同一个事务中连续二次读的数据条数不一样(针对insert操作)

不可重复读:同一个事务中对同一条数据连续读取二次,结果不一样(针对update操作)

一致性

定义:事务执行前后,数据必须是从一个一致性状态到另一个一致性状态。

所谓的一致性状态包含:1):事务执行后数据依然瞒住完整性约束

2):事务执行后,数据的状态代表了真实世界的数据状态

事务的原子性 + 隔离性 + 持久性 保证了数据事务的一致性。

相关文章

  • Mysql事务

    1) mysql事务的ACID特性 2)MySQL事务隔离级别

  • 淘宝MySQL文档整理

    MySQL · 引擎特性 · InnoDB 事务锁系统简介 MySQL · 引擎特性 · Innodb 锁子系统浅...

  • 收集几十位大厂面试者的面试题及个人见解-MySQL模块

    1.1 MySQL事务特性是什么?怎样实现ACID特性? MySQL事务指:一组操作要么同时成功要同时失败。所以事...

  • MYSQL 事务特性

    Mysql事务包含ACID四个特性,A: 原子性, C:一致性, I:隔离性, D:持久性 原子性 定义:事务执行...

  • 分布式事务概论

    by shihang.mai 分布式事务 传统事务 传统事务(典型:mysql)有以下特性: 原子性A(Atomi...

  • Mysql 面试题

    1.什么Mysql的事务?事务的四大特性?事务带来的什么问题? Mysql中事务的隔离级别分为四大等级:读未提交(...

  • MySQL事务

    MySQL-innodb-事务 事务的特性 事务的生命周期 失败的事务: 事务的控制语句 面试题 事务日志-red...

  • InnoDB学习笔记(2)Undo log

    MySQL · 引擎特性 · InnoDB undo log 漫游 INSERT操作在事务提交前只对当前事务可见,...

  • 探秘数据库中的事务

    本文包括:1、事务概念2、MySQL管理事务3、JDBC控制事务进程4、事务的特性(ACID)5、事务的隔离级别6...

  • MYSQL 常考(转)

    MySQL 事务四大特性 一说到 MySQL 事务,你肯定能想起来四大特性:原子性、一致性、隔离性、持久性,下面再...

网友评论

      本文标题:MYSQL 事务特性

      本文链接:https://www.haomeiwen.com/subject/pcdptltx.html