数据库之MySQL——事务(一)

news/2025/2/23 17:08:12

mysql之事务的四大特性-acid">1、MySQL之事务的四大特性(ACID)?

原子性(atomicity):一个事务必须视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性。

一致性(consistency)数据库总是从一个一致性的状态转换到另一个一致性的状态。

  • 转账前后,账户总金额应保持不变(A + B 的总和不变)。

隔离性(isolation):一个事务所做的修改在最终提交以前,对其他事务是不可见的。

持久性(durability):一旦事务提交,则其所做的修改就会永久保存到数据库中。此时即使系统崩溃,修改的数据也不会丢失。

2、并发事务会出现什么问题?

脏读:脏读指的是读到了其他事务未提交的数据,未提交意味着这些数据可能会回滚,也就是可能最终不会存到数据库中,也就是不存在的数据。读到了并一定最终存在的数据,这就是脏读。例如,事务A修改数据未提交,事务B读取后若事务A回滚,事务B的数据将不一致。

不可重复读:对比可重复读,不可重复读指的是在同一事务内,不同的时刻读到的同一批数据可能是不一样的,可能会受到其他事务的影响,例如,事务A第一次读取数据后,事务B修改并提交了该数据,事务A再次读取时发现值已改变。通常针对数据更新操作。

幻读:幻读是针对数据插入操作来说的。假设事务A对某些行的内容作了更改,但是还未提交,此时事务B插入了与事务A更改前的记录相同的记录行,并且在事务A提交之前先提交了,而这时,在事务A中查询,会发现好像刚刚的更改对于某些数据未起作用,让用户感觉感觉出现了幻觉,这就叫幻读。

可重复读:可重复读指的是在一个事务内,最开始读到的数据和事务结束前的任意时刻读到的同一批数据都是一致的。

mysql的事务隔离级别">3、MySQL的事务隔离级别?

读未提交(read uncommitted):指一个事务还没提交时,它做的变更就能被其他事务看到。

读提交(read committed):指一个事务提交之后,它做的变更才能被其他事务看到。

可重复读(repeatable read):指一个事务执行过程中看到的数据,一直跟这个事务启动时看到的数据是一致的,MySQL InnoDB 引擎的默认隔离级别

串行化(serializable ):会对记录加上读写锁,在多个事务对这条记录进行读写操作时,如果发生了读写冲突的时候,后访问的事务必须等前一个事务执行完成,才能继续执行。

4、在不同事务隔离级别下会发生什么现象?

读未提交:可能发生脏读、不可重复读和幻读现象;

读提交:可能发生不可重复读和幻读现象,但是不可能发生脏读现象;

可重复读:可能发生幻读现象,但是不可能脏读和不可重复读现象;

串行化:隔离级别下,脏读、不可重复读和幻读现象都不可能会发生。


http://www.niftyadmin.cn/n/5863610.html

相关文章

论文略读:Uncovering Hidden Representations in Language Models

202502 arxiv 说一下主要结论吧 对于下游任务,语言模型的中间层在所有架构和任务中始终优于最后一层 这挑战了使用最后一层表示的传统观点。 不同的架构表现出不同的信息压缩模式。自回归模型在中间层存在瓶颈,而双向模型则保持更均匀的趋势 BERT通过双…

CSS垂直居中终极方案:告别复杂计算,拥抱现代布局

CSS垂直居中终极方案:告别复杂计算,拥抱现代布局 📌 前言:为什么垂直居中如此重要?一、2024年最推荐的3种方案1. Flexbox布局(首推方案)2. Grid布局(未来趋势)3. Transfo…

【核心算法篇二十】《DeepSeek符号回归:让AI化身「数学神探」破解数据背后的宇宙公式》

“宇宙最不可理解之处,就是它居然可以被理解。”——爱因斯坦 如果让AI来续写这句话,或许会是:"数据最迷人的地方,在于它总能用数学公式讲出故事。"今天我们要聊的DeepSeek符号回归技术,就是教AI从杂乱数据中自动发现精妙数学规律的「黑魔法」。全程高能预警,建…

OpenCV(6):图像边缘检测

图像边缘检测是计算机视觉和图像处理中的一项基本任务,它用于识别图像中亮度变化明显的区域,这些区域通常对应于物体的边界。是 OpenCV 中常用的边缘检测函数及其说明: 函数算法说明适用场景cv2.Canny()Canny 边缘检测多阶段算法,检测效果较…

机器学习实战(7):聚类算法——发现数据中的隐藏模式

第7集:聚类算法——发现数据中的隐藏模式 在机器学习中,聚类(Clustering) 是一种无监督学习方法,用于发现数据中的隐藏模式或分组。与分类任务不同,聚类不需要标签,而是根据数据的相似性将其划…

MATLAB学习之旅:数据建模与仿真应用

在MATLAB的学习之旅中,我们已经积累了丰富的基础知识和实用的编程技巧。从前面的学习中,我们对MATLAB的基础操作、数据处理、统计分析等方面都有了深入的了解。如今,我们将迈向一个充满创造力和实用性的阶段——数据建模与仿真应用。这部分内…

Oracle 10g数据库资源下载分享

简介:Oracle 10g是Oracle公司推出的一款数据库管理系统版本,本教程将向读者详细说明如何在不同的操作系统平台上安装、配置Oracle 10g,包括系统需求、安装步骤、数据库启动关闭、用户和表空间管理、网络配置及性能调优。同时,还介…

3DGS(三维高斯散射)与SLAM技术结合的应用

3DGS(三维高斯散射)与SLAM(即时定位与地图构建)技术的结合,为动态环境感知、高效场景建模与实时渲染提供了新的可能性。以下从技术融合原理、应用场景、优势挑战及典型案例展开分析: 一、核心融合原理 1. …