数据库事务和事务的ACID特性

本文详细解释了数据库事务的四个主要特性:原子性保证操作要么全做要么全不做,一致性确保事务前后数据一致性,隔离性防止事务干扰,以及持久性确保事务提交后数据变更。同时介绍了不同隔离级别的概念,如读未提交、读已提交、可重复读取和幻读,以及它们各自解决的问题。

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

  1. 数据库事务:

    1.  数据库的一系列操作操作序列,这些操作序列作为一个不可分割的最小执行单元,要么全部成功执行,要么全部不执行,即:如果有一个操作未执行成功,那么所有以前执行的操作也全部回滚

  2. 事务的ACID

    • 原子性(A):事务作为最小执行单元,不可分割,作为一个原子操作,要么全部执行,要么全部回滚。

    • 一致性(C):⼀致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。这是说数据库 事务不能破坏关系数据的完整性以及业务逻辑上的⼀致性。

      • 简单来说:数据库的一致性就是数据库的数据都是正确,事务的一致性,就是事务执行前后数据库中的数据都是正确的没有错误,如果发送错误会回滚到执行事务之前的状态。

    • 隔离性:事务与事务之间的执行是相互隔离的,互不影响

    • 持久性:事务执行成功之后,会更改数据库,不会回滚,即:永久地修改了,即便系统出现故障也无法更改

  3. 隔离级别

    • 读未提交:解决了更新丢失,但还是可能会出现脏读

    • 读已提交:解决了更新丢失和脏读问题

    • 可重复读取:解决了更新丢失、脏读、不可重复读、但是还会出现幻

    • 可序化:解决了更新丢失、脏读、不可重复读、幻读(虚读

  4. 脏读、幻读、可重复读

    • 脏读:一个事务读取另外一个事务还没有提交的数据。

    • 幻读(读少了):指在一个事务内两次读取同一条件的数据,两次读取的数据总量不同。

    • 不可重复读(读错了):指在一个事务内,多次读同一条件的数据,数据总量相同但数据的内容发生了改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值