Mysql 事务的四个特性

一个事务就是一个完整的业务逻辑、一个最小的工作单元,可以提交或回滚,保证多次更改全部成功或失败

原子性

  • 当事务对数据库进行多次更改时,要么在提交事务后所有更改成功,要么在回滚事务时撤销所有更改
  • InnoDB 通过 undolog 来实现事务的原子性,每次 DML 语句执行前 InnoDB 会在 undolog 中写入与该语句逻辑相反的语句。当事务回滚时,InnoDB 会将 DML 语句和 undolog 中的语句一起执行,以抵消数据的修改

隔离性

  • 指并发的事务在进行过程中在某种程度上不互相干扰,这里的程度与事务隔离级别有关

持久性

  • 指事务提交成功后,该事务所做的更改是永久的,也即写入磁盘
  • 很多数据库通过 WAL 的思想防止写入期间出现如电源故障或软件崩溃等情况导致的数据丢失
  • WAL ( write ahead log ) :写入数据时先写日志。相较于写日志,磁盘的写入是相当耗费的时间的,所以出现意外的概率也较大,但只要日志写入成功了,InnoDB 就可以根据日志进行数据的恢复。InnoDB 实现的日志叫 redolog ,事务提交时 InnoDB 会先在 redolog 中写入事务做出的更改

一致性

  • 事务提交或回滚后,数据库从一个有效的状态变为另一个有效的状态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值