【MySQL】事务的特性和隔离级别

news2025/6/26 21:09:03

创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!!
主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!

给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ

在这里插入图片描述


目录

  • 一、事物的基本特性 ACID
    • 1.原子性(Atomicity)
    • 2.一致性(Consistency)
    • 3.隔离性(Isolation)
    • 4.持久性(Durability)
  • 二、事物的隔离级别
    • 1.读未提交(**Read Uncommitted**)
    • 2.读已提交(**Read Committed**)
    • 3.可重复读(**Repeatable Read**)
    • 4.串行化(**Serializable**)
  • 三、并发问题

数据库事务代表了对数据库进行的一系列修改操作。

这些操作要么全部执行,要么都不执行,事务保证了数据的完整性和一致性


一、事物的基本特性 ACID

1.原子性(Atomicity)

事务中的全部操作在数据库中是不可分割的,要么全部完成,要么全不执行

事务是最小工作单元,不可再分

2.一致性(Consistency)

事务必须使数据库从一个一致性的状态变换到另一个一致性的状态

数据库的完整性约束不能被破坏

3.隔离性(Isolation)

在事务完成之前,对于外部是不可见的。即一个事务不能看到其他未完成的事务所做出的修改。

多个事务互不影响

4.持久性(Durability)

对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失

持久保存到本地 事务–>提交 数据发生改变是永久的


二、事物的隔离级别

由低到高:

1.读未提交(Read Uncommitted

允许一个事务读取另一个未提交事务的数据(脏读)

2.读已提交(Read Committed

一个事务要等到另一个事务提交后才能读取数据。解决了脏读的问题,只会读取提交后的数据

可能会出现两次读取结果不一致(不可重复读)

3.可重复读(Repeatable Read

MySQL 的默认隔离级别

在事务开始读取数据时,不允许其他事务对数据进行修改操作。解决了脏读和不可重复读的问题

可能出现每次读取的数据都一样(幻读)

4.串行化(Serializable

给每一行数据加锁。开销较大并且存在竞争问题。一般不使用

一般来说,隔离级别越高,数据一致性越强,但并发性能越差。


三、并发问题

1.脏读

一个事务读取到了另一个事务未提交的数据操作结果。

2.不可重复读

一个事务对同一行数据重复读取两次,但是得到了不同的结果。

3.幻读

第二次查询的结果包含了第一次查询中未出现的数据或者缺少了第一次查询中出现的数据。


在这里插入图片描述

大家的点赞、收藏、关注将是我更新的最大动力! 欢迎留言或私信建议或问题。
大家的支持和反馈对我来说意义重大,我会继续不断努力提供有价值的内容!如果本文哪里有错误的地方还请大家多多指出(●'◡'●)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1822741.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

报名进行中 | ISCSLP2024 对话语音克隆挑战赛(CoVoC)

晴数智慧(Magic Data)联合西北工业大学音频语音与语言处理研究组(ASLPNPU)、新加坡资讯通讯研究院(I2R)、深圳大数据研究院(SRIBD)、香港中文大学(深圳)等多家单位在2024年中文口语语言处理国际会议(ISCSLP2024)上推出对话语音克隆挑战赛(Conversational Voice Clone Challenge…

FRP 内网穿透 | 实现远程访问与安全管理

唠唠闲话 内网穿透简介 在互联网上&#xff0c;两个不同主机进行通信需要知道对方的 IP 地址。由于世界人口和设备众多&#xff0c;IPv4 资源相对紧缺&#xff0c;因此绝大部分情况下是通过路由器或交换机转换公网 IP 后才上网。 位于路由器或交换机后的设备通常是内网设备&…

Kettle根据分类实现Excel文件拆分——kettle开发31

将整理好的一份供应商付款明细Excel文件&#xff0c;按供应商拆分成多个Excel文件。 实现思路 本文我们首先将供应商付款明细表&#xff0c;按照“名称”拆分成多份Excel文件。拆分Excel文件打算用两个转换实现&#xff0c;一个用来将Excel数据读取到参数中&#xff0c;另外一…

2.4G低功耗无线收发SOC芯片-SI24R03

随着物联网产业对集成度的需求越来越高&#xff0c; 也在不断地完善公司产品生态。 “射频MCU”产品组合--无线SOC芯片&#xff08;MCU&#xff09;&#xff0c;简化了系统设计。只需要少量的外围器件&#xff0c;用户即可实现产品的开发&#xff0c;有效减少了PCB板的占用…

热门开源项目推荐: diffusionbee

随着AI技术的快速发展&#xff0c;深度学习和机器学习已经成为各领域的热门话题。Stable Diffusion是一种强大的深度学习模型&#xff0c;它能够在图像生成和处理方面展现出惊人的效果。为了让更多用户能够轻松地使用Stable Diffusion&#xff0c;Diffusion Bee应运而生&#x…

Instagram怎么打不开?IP被限制怎么解决?

Instagram作为跨境电商的主要推广平台之一&#xff0c;账号安全关系重大。了解并掌握账号管理及防IP封禁的知识可以有效防止Ins账号被限制访问。因此本文将重点介绍 Instagram账号的管理技巧以及如何通过代理IP等工具防封禁&#xff0c;帮助新手用户更好地享受这个社交平台的乐…

python django初步搭建(一)

记录一次简单的python django使用&#xff0c;后续调用api相关的暂时不想写。。。 一、环境 windows python 3.11.7 django 二、初步搭建 2.1 新建空文件夹 为了方便本次记录&#xff0c;新建了一个空的文件夹来使用。 直接在这里输入cmd 然后按下回车 2.2 安装virtual…

【小米商城】页面编写笔记(自用)

页面展示&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>body{margin: 0;}img{width:100%;height: 100%;}.header{/*height: 38px;*…

Linux开机自启/etc/init.d和/etc/rc.d/rc.local

文章目录 /etc/init.d和/etc/rc.d/rc.local的区别/etc/init.dsystemd介绍 /etc/init.d和/etc/rc.d/rc.local的区别 目的不同&#xff1a; /etc/rc.d/rc.local&#xff1a;用于在系统启动后执行用户自定义命令&#xff0c;适合简单的启动任务。 /etc/init.d&#xff1a;用于管理…

Vulnhub-DC-5

靶机IP:192.168.20.139 kaliIP:192.168.20.128 网络有问题的可以看下搭建Vulnhub靶机网络问题(获取不到IP) 信息收集 nmap扫下端口及版本 dirsearch扫下目录 LinuxphpNginx 环境 我们再去看前端界面&#xff0c;发现在contact界面有能提交的地方&#xff0c;但是经过测试不…

开源项目QAnything:全能型本地知识库问答系统

在当今信息爆炸的时代&#xff0c;如何高效地管理和检索大量数据成为了一个重要课题。网易有道推出的开源项目QAnything&#xff0c;正是为了解决这一问题而生。QAnything是一个本地知识库问答系统&#xff0c;支持多种文件格式和数据库&#xff0c;允许用户在离线状态下进行安…

“探索机器学习的多面世界:从理论到应用与未来展望“

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;机器学习 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 目录 一、机器学习基础理论 1.机器学习的定义与分类 监督学习 无监督学…

[c++刷题]贪心算法.N01

题目如上: 首先通过经验分析&#xff0c;要用最少的减半次数&#xff0c;使得数组总和减少至一半以上&#xff0c;那么第一反应就是每次都挑数组中最大的数据去减半&#xff0c;这样可以是每次数组总和值减少程度最大化。 代码思路:利用大根堆去找数据中的最大值&#xff0c;…

MPLS提高网络服务质量的原理

MPLS&#xff08;Multiprotocol Label Switching&#xff0c;多协议标签交换&#xff09;是一种网络技术&#xff0c;它能够提高网络的服务质量&#xff08;Quality of Service&#xff0c;QoS&#xff09;以及整体性能。MPLS通过以下几种方式来提升网络服务质量&#xff1a;标…

CorelDRAW2024破解版下载 设计界的神器,你值得拥有!

数字艺术家们&#xff0c;你们有没有遇到过这样的困扰&#xff1a;想要创作出令人惊叹的数字艺术作品&#xff0c;但却受限于工具的选择&#xff1f;&#x1f914; 好消息来了&#xff01;CorelDRAW2024这款强大的设计软件终于问世了&#xff01;&#x1f389; 作为一名热衷于探…

Python基础教程(十一):数据结构汇总梳理

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

信号与系统实验MATLAB-实验2-连续时间系统的时域分析

实验二 连续时间系统的时域分析 一、实验目的 1、掌握连续时间信号卷积及其MATLAB实现方法&#xff1b; 2、掌握连续系统的冲激响应、阶跃响应及其MATLAB实现方法&#xff1b; 3、掌握利用MATLAB求LTI系统响应的方法&#xff1b; 4、掌握利用MATLAB求函数卷积和解微分方程…

【递归、搜索与回溯】综合练习一

综合练习一 1.找出所有子集的异或总和再求和2.全排列 II3.电话号码的字母组合4.括号生成 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1.找…

Django序列化器详解:普通序列化器与模型序列化器的选择与运用

系列文章目录 Django入门全攻略&#xff1a;从零搭建你的第一个Web项目Django ORM入门指南&#xff1a;从概念到实践&#xff0c;掌握模型创建、迁移与视图操作Django ORM实战&#xff1a;模型字段与元选项配置&#xff0c;以及链式过滤与QF查询详解Django ORM深度游&#xff…

Go Gin框架

一、Gin介绍 Gin是一个用Go编写的HTTPweb框架。它是一个类似于martini但拥有更好性能的API框架, 优于httprouter&#xff0c;速度提高了近 40 倍。点击此处访问Gin官方中文文档。 二、安装 1、安装Gin go get -u github.com/gin-gonic/gin 2、代码中引入 import "githu…