什么是事务?事务的四大特性是什么?

事务就是用户定义的一系列执行SQL语句的操作, 这些操作要么完全地执行,要么完全地都不执行, 它是一个不可分割的工作执行单元。

在MySQL中,只有 InnoDB 存储引擎才有事务。

在同一个事务中,执行的操作要么全部成功,要么同时执行成功,要么同时执行失败;在不同的事务中,它们对数据库的操作是不受相互的影响。

在MySQL的事务中有四个重要的特性,也就是 ACID 特性(原子性、一致性、隔离性和持久性)

① A 表示 Atomicity 原子性:确保同一个事务中,所有的 DML 操作,也就是增删改操作,要么全部成功执行,要么全部回滚,以保持数据的完整性和一致性。

之所以失败操作能进行回滚,是因为 InnoDB 设计了一 个 UNDO_LOG 表,在事务执行的过程中,把修改之前的数据快照保存到 UNDO_LOG 里面,一旦出现错误,就直接从 UNDO_LOG 里面读取数据,也就实现回滚操作。

② C 表示 Consistency 一致性:表示事务执行过程中遵循数据库的完整性约束,以保持数据的正确性和完整性。这个更多是依赖于业务层面的保证,数据库本身也提供了一些,比如主键的唯一性、外键约束、默认值约束、非空约束、字段的长度与类型的保证等等。

③ I 表示 Isolation 隔离性:表示在多个并发事务对同一个数据进行操作的时候, 事务之间是相互隔离,可以避免数据的相互干扰和不一致性。

在MySQL中,有四种事务的隔离级别。

而InnoDB 默认的隔离级别是可重复读(RR:Repeatable Read),它使用了 MVCC 机制解决了脏读和不可重复读的问题

④ D 表示 Durability 持久性:表示只要事务一旦提交成功,那对于这条数据结果的影响是永久性的,也就是持久化存储在磁盘上,即使在系统故障或断电后也不会丢失。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值