MySQL事务的特性、隔离级别、脏读和幻读

本文介绍了MySQL事务的基础知识,包括事务的四大特性(ACID)、隔离级别(读未提交、读已提交、可重复读、串行化)及其解决的问题,特别是脏读、不可重复读和幻读的概念。通过理解这些概念,有助于更好地掌握数据库并发控制和事务处理。
摘要由CSDN通过智能技术生成


前言

数据库是后端最核心的工具之一,分关系型数据库和非关系型数据库,关系型主流是MySQL和PgSQL,今天就以MySQL为例,讲一下数据库事务相关的知识点。


一、什么是脏读、不可重复读、幻读

在介绍事务的特性和隔离级别之前,首先来看一组非常容易混淆的概念:幻读、脏读和不可重复读。

(1)脏读

  • 一个事务可以读另一个未提交的已修改事务的内容;
  • 事务a,事务b,其实事务b做了修改,但是没有提交,事务a可以读到事务b这个修改,但是后面事务b回滚了修改,那么这个数据就不存在了,这就是脏读;
  • 脏读只有在读未提交隔离级别下存在。

(2)不可重复读

  • 一个事务只能读到其他的已提交的事务的修改内容;

  • 事务a,事务b,事务b修改了,并且已经提交,此时事务a可以读到一个结果,此时事务b又修改了,并且提交,此时事务a又读到了一个不同的结果,这个就是不可重复读;

  • 不可重复读在读未提交和读提交隔离级别都存在。

(3)幻读

  • 一个事务提交后,才可以读到另一个提交后事务的修改,但是,如果同一个查询,其他事务添加了一个符合该查询的修改,那么每次查询的结果不同;

    <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值