三张时序图-彻底明白数据库事务隔离级别

本文通过三张时序图详细解释了数据库事务隔离级别的概念和问题,包括脏读、不可重复读、幻读。讨论了MySQL的四种事务隔离级别:READ-UNCOMMITTED、READ-COMMITTED、REPEATABLE-READ和SERIALIZABLE,以及它们如何应对并发操作带来的挑战。事务的隔离级别在保证数据安全性与提升并发性能之间找到平衡至关重要。

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

三张时序图-彻底明白数据库事务隔离级别

要想讲清楚数据库的事务隔离级别,首先得明白数据库事务是什么,每件东西的诞生必有它的用途。先看一个小故事。

一个小故事

生活中有这种常见的场景:银行的转账,A同学账户中有1000元,B同学账户中有2000。现在A同学需要转账给B同学300。而在数据库的层面上来讲,这包含两个操作:首先在A账户中减去300,A账户的钱变为700,然后在B账户中加上300,B账户的钱变成2300。
问题思考:假设在A同学转账完成后,此时系统崩溃,B账户还没有来得及加上300元,这显然是大家不能接收的结果。

什么是事务?

事务则是将一系列的操作包装成为一个整体运算集合,这个运算集合要么都执行要么都不执行
所以,如果我们将这两个操作定义在一个事务中执行,那么很显然可以及时避免这种问题,即取款的这两个步骤要么都执行成功,要么都不执行。

事务的特性

一般来讲事务具备四个特性,简称ACID。

  • A,Automicity 原子性,事务所引起的数据库操作要么都完成,要么都不执行
  • C,Consistency 一致性,事务的执行前后数据总体是不变
  • I,Isolation 隔离性,彼此之间进行隔离,尽可能让不同的事务之间影响最小
  • D,Durability,持久性,一旦事务完成,系统必须保证任何故障都不会引起事务表示出不一致。

事务的并发所带来的问题

如果不考虑事务之间存在隔离性,在多个事务对同一张表进行操作时,将会产生数据的不一致性。一般来说可分为:脏读,不可重复读,幻读

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值