数据库事务的基本概念

本文介绍了数据库事务的基本概念,强调了事务的原子性、一致性、隔离性和持久性(ACID)四大特性。接着讨论了并发事务执行时可能出现的脏读、不可重复读和幻读问题,以及第一类和第二类丢失更新。文章还详细阐述了事务的四个隔离级别,包括读未提交、读已提交、可重复读和可串行化,指出MySQL InnoDB的默认隔离级别为可重复读,能有效防止幻读并提供高并发性。
摘要由CSDN通过智能技术生成

什么是事务

事务就是一组因为逻辑上紧密关联而合并成一个整体的多个数据库操作。这些操作要么都执行,要么都不执行。

事务的四大特性(ACID)

  • A: Automicity(原子性)。事务不可再分,事务中的操作要么都执行,要么都不执行。
  • C: Consistency(一致性)。事务执行前后,数据保持一致。比如刚开始A有800,B有200,A转给B200后,A有600,B有400。符合逻辑规则。
  • I: Isolation(隔离性)。事务往往是并发执行的,并发访问数据库时,不能互相干扰。
  • D: Durability(持久性)。一个事务被提交之后,它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。

事务并发带来的问题

  • 脏读(Dirty Read)
    脏数据就是指未提交的数据。当一个事务对数据做了修改,在事务没有提交之前,这个修改的数据处于待定状态,之后可能被提交,也可能回滚。这个时候另外一个事务读取了这条数据,这就是脏读。

  • 不可重复读(Non-Repeatable Reads)
    一个事务先后读取同一条记录,但在两次读取之间,数据被其他事务所修改,导致两次读到的数据不一样,这就是不可重复读。

  • 幻读(Phantom Reads)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值