5.MySql 中的事务 以及 MVCC

本文详细介绍了MySQL中的事务及其ACID特性,探讨了事务并发引发的脏读、不可重复读、幻读等问题,并详细解析了MySQL的事务隔离级别。此外,文章深入讲解了MVCC(多版本并发控制)原理,包括版本链、ReadView概念,以及如何在不同隔离级别下处理事务问题。

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

在 MySQL 中,默认情况下,每个单独的增、删、改、查操作都被视为一个独立的事务,即使您没有显式地使用事务语句(如BEGIN、COMMIT或ROLLBACK)。这意味着每个操作都会自动以自己的事务开始和提交。


然而,这种自动提交的行为在特定情况下可能会有所不同。如果您在连接到 MySQL 服务器时显式地禁用了自动提交模式,或者您在一个事务中执行多个操作并显式地使用事务语句控制提交和回滚,那么这些操作就会成为一个整体,组成一个显式的事务。


总的来说,MySQL 默认将每个操作视为一个事务,但具体是否成为一个独立的事务取决于您的操作和事务控制的方式。

一、为什么需要事务

事务是数据库管理系统(DBMS)执行过程种的一个逻辑单位(不可再进行分割),由一个有限的数据库操作序列构成(多个DML语句,select 语句不包含事务),要么全部成功,要么都不成功。

例如:
A给B转账,A的账户-1000元,B的账号就要+1000元,这两个update语句必须作为一个整体来执行。不然A扣钱了,B没有加钱这种情况就是错误的。那么事务就可以保证A、B账户的变动,要么全部一起发生

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

往日时光--

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值