当前位置: 首页 > article >正文

【mysql】事物与隔离级别

事物

事务(Transaction)是并发控制的基本单位。所谓的事务呢,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。

事务具有四大特性,通常称为ACID特性:

  • 原子性(Atomicity):事务要么完全执行,要么完全不执行。
  • 一致性(Consistency):事务执行后,数据库从一个一致性状态转移到另一个一致性状态。
  • 隔离性(Isolation):事务的执行不受其他事务的影响。
  • 持久性(Durability):事务一旦提交,其结果将永久保存在数据库中。
隔离级别

MySQL支持四个标准的隔离级别,从低到高分别是:

  • 读未提交(Read Uncommitted):允许一个事务读取另一个事务未提交的数据。
  • 读已提交(Read Committed):保证一个事务不会读取到另一个未提交事务的数据。
  • 可重复读(Repeatable Read):确保在事务执行期间查询相同记录的结果始终一致。
  • 串行化(Serializable):最高的隔离级别,通过强制事务串行执行来避免并发问题。

隔离级别定义了多个事务之间的相互影响程度,数据库往往是多个线程并发执行多个事务,采用不同的隔离级别会有不同的结果。如果不考虑事务的隔离性,可能会发生几种问题

  • 脏读:一个事务读到了另一个未提交事务修改过的数据,就意味着发生了脏读现象。
  • 不可重复读:一个事务修改了另一个未提交事务读取的数据,就意味着发生了不可重复读现象。
  • 幻读:一个事务先根据某些查询条件查询出一些记录,在该事务未提交时,另一个事务写入了一些符合那些收缩条件的记录(这里指INSERT,DELETE,UPDATE 操作),就以为着发生了幻读现象

不同隔离级别对应可能出现的情况:

隔离级别脏读不可重复读幻读
READ UNCOMMITTED☑️☑️☑️
READ COMMITTED☑️☑️
REPEATABLE READ☑️
SERIALIZABLE


http://www.kler.cn/a/162257.html

相关文章:

  • 阅读2020-2023年《国外军用无人机装备技术发展综述》笔记_技术趋势
  • 2024-11-13 学习人工智能的Day26 sklearn(2)
  • 学术论文写作丨机器学习与深度学习
  • MyBatis CRUD快速入门
  • 字符及字符串(ASCII编码系统)
  • 《情商》提升:增强自我意识,学会与情绪共处
  • CKafka 一站式搭建数据流转链路,助力长城车联网平台降低运维成本
  • 模块式雨水调蓄池施工简单,无需大型机械,可实现当天开挖当天回填
  • Python Appium Selenium 查杀进程的实用方法
  • 微信小程序 - PC端选择ZIP文件
  • 微软 Power Platform 零基础 Power Pages 网页搭建实际案例实践(三)
  • 013 OpenCV copyMakeBorder(padding)
  • vscode如何在没有网络的情况下安装插件
  • Python 中 Thread 线程的用法
  • 非常抱歉的通知
  • 在imx6ull中加入ov5640模块
  • Linux查看命令的绝对路径
  • 企业贷款行业如何获客?
  • 无公网IP环境如何SSH远程连接Deepin操作系统
  • C++初学教程三
  • 赛事回顾 | 首届“智航杯“全国无人机智能算法竞赛落幕
  • 无人机语音中继电台 U-ATC118
  • try catch 应该在 for 循环里面还是外面?(荣耀典藏版)
  • 读书笔记-《数据结构与算法》-摘要1[数据结构]
  • shell学习---杂谈
  • 【JavaEE进阶】 Spring使用注解存储对象