MySQL篇之事务

一、事务

1.事务的定义

        事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。

2.事务的特性

        ACID的解释如下:

        1. 原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全部失败。

        2. 一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态。

        3. 隔离性(Isolation):数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行。

        4. 持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的。

二、事务的并发、隔离级别

1.事务的并发问题

        解决并发问题的方法就是使用隔离级别

2.隔离级别

注意:事务隔离级别越高,数据越安全,但是性能越低。

三、面试的回答

1.事务的特性

面试官:事务的特性是什么?可以详细说一下吗?

候选人:嗯,这个比较清楚,ACID,分别指的是:原子性、一致性、隔离性、持久性;我举个例子:

A向B转账500,转账成功,A扣除500元,B增加500元,原子操作体现在要么都成功,要么都失败

在转账的过程中,数据要一致,A扣除了500,B必须增加500。

在转账的过程中,隔离性体现在A像B转账,不能受其他事务干扰。

在转账的过程中,持久性体现在事务提交后,要把数据持久化(可以说是落盘操作)。

2.事务并发问题及解决

面试官:并发事务带来哪些问题?

候选人:我们在项目开发中,多个事务并发进行是经常发生的,并发也是必然的,有可能导致一些问题。

第一是脏读, 当一个事务正在访问数据并且对数据进行了修改,而这种修改还没有提交到数据库中,这时另外一个事务也访问了这个数据,因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是“脏数据”,依据“脏数据”所做的操作可能是不正确的。

第二是不可重复读:比如在一个事务内多次读同一数据。在这个事务还没有结束时,另一个事务也访问该数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改导致第一个事务两次读取的数据可能不太一样。这就发生了在一个事务内两次读到的数据是不一样的情况,因此称为不可重复读。

第三是幻读(Phantom read):幻读与不可重复读类似。它发生在一个事务(T1)读取了几行数据,接着另一个并发事务(T2)插入了一些数据时。在随后的查询中,第一个事务(T1)就会发现多了一些原本不存在的记录,就好像发生了幻觉一样,所以称为幻读。

面试官:怎么解决这些问题呢?MySQL的默认隔离级别是?

候选人:解决方案是对事务进行隔离,MySQL支持四种隔离级别,分别有:

第一个是,未提交读(read uncommitted)它解决不了刚才提出的所有问题,一般项目中也不用这个。

第二个是读已提交(read committed)它能解决脏读的问题的,但是解决不了不可重复读和幻读。

第三个是可重复读(repeatable read)它能解决脏读和不可重复读,但是解决不了幻读,这个也是mysql默认的隔离级别。

第四个是串行化(serializable)它可以解决刚才提出来的所有问题,但是由于让是事务串行执行的,性能比较低。所以,我们一般使用的都是mysql默认的隔离级别:可重复读。

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

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

相关文章

webpack实际实践优化项目

参考: 如何通过性能优化,将包的体积压缩了62.7% 雅虎35条 20210526-webpack深入学习,搭建和优化react项目 本文只专注于性能优化的这个部分。 总体来说分为两个方面:第一是开发环境中主要优化打包速度,第二是线上环境…

什么是特征值和特征向量?(done)

什么是齐次方程? https://blog.csdn.net/shimly123456/article/details/136198159 行列式和是否有解的关系? https://blog.csdn.net/shimly123456/article/details/136198215 特征值和特征向量 参考视频:https://www.bilibili.com/video/BV1…

怎么把Maven依赖的包都提取到文件夹

由于我用Maven只想借助他下载jar包和依赖,不想自己的程序编译还得依赖Maven,所以试验时候用Maven引用依赖,试验成功再拷贝jar包来本地引用,有时候依赖多,一个个拷贝就太慢了。所以要能批量把所有依赖jar提取出来。 加…

【删除数组用delete和Vue.delete有什么区别】

删除数组用delete和Vue.delete有什么区别? 在 JavaScript 中,delete 和 Vue.js 中的 Vue.delete 是两个完全不同的概念,它们在删除数组元素时的作用和效果也有所不同。 JavaScript 中的 delete 关键字: 在原生 JavaScript 中&a…

【C语言】长篇详解,字符系列篇2-----strcat,strcmp,strncpy,strncat,strncmp函数的使用和模拟实现【图文详解】

欢迎来CILMY23的博客喔,本期系列为【C语言】长篇详解,字符系列篇2-----“混杂”的字符串函数,字符串函数的使用和模拟实现【图文详解】,图文讲解各种字符串函数,带大家更深刻理解C语言中各种字符串函数的应用&#xff…

LeetCode.589. N 叉树的前序遍历

题目 589. N 叉树的前序遍历 分析 我们之前有做过LeetCode的 144. 二叉树的前序遍历,其实对于 N 插树来说和二叉树的思路是一模一样的。 二叉树的前序遍历是【根 左 右】 N叉树的前序遍历顺序是【根 孩子】,你可以把二叉树的【根 左 右】想象成【根 孩…

【python】网络爬虫与信息提取--scrapy爬虫框架介绍

一、scrapy爬虫框架介绍 scrapy是一个功能强大的网络爬虫框架,是python非常优秀的第三方库,也是基于python实现网络爬虫的重要技术路线。scrapy不是哟个函数功能库,而是一个爬虫框架。 爬虫框架:是实现爬虫功能的一个软件结构和功…

AS-V1000 视频监控平台产品介绍:客户端功能介绍(四)

目 录 一、引言 1.1 AS-V1000视频监控平台介绍 1.2平台服务器配置说明 二、软件概述 2.1 客户端软件用途 2.2 客户端功能 三、客户端功能说明 3.1告警管理 3.1.1告警联动 (1)告警联动显示 (2)告警联动处理 3…

基于学习的参数化查询优化方法

一、背景介绍 参数化查询是指具有相同模板,且只有谓词绑定参数值不同的一类查询,它们被广泛应用在现代数据库应用程序中。它们存在反复执行动作,这为其性能优化提供了契机。 然而,当前许多商业数据库处理参数化查询的方法仅仅只…

代码运行时内存分区

计算机科学中,代码运行时的内存通常划分为以下分区: 堆栈 静态区 活跃区 代码段 常量存储区 全局/静态数据区 只读数据区 BSS 段 ----------------------------------- | 代码段 | ----------------------------------- | …

LeetCode--1445. 苹果和桔子

文章目录 1 题目描述2 测试用例3 解题思路 1 题目描述 表: Sales ------------------------ | Column Name | Type | ------------------------ | sale_date | date | | fruit | enum | | sold_num | int | ------------------------(sale…

Uibot (RPA设计软件)智能识别信息+微信群发助手(升级版)———课后练习2

解决痛点: Excel如何计算两个日期之间相差月数 方法: 1、首先打开要进行操作的Excel表格。 2、打开后选中要计算相差月数的单元格。 3、然后输入公式:DATEDIF(A2,B2,"m"),输入完成后点击回车键。 4、在弹出的窗口中&a…

Rancher实用篇-使用rancher,部署微服务应用

说到rancher,我们必须先了解一下k8s 一、k8s简介 Kubernetes(通常简写为 K8s)是一个开源的容器管理系统,由Google于2014年发起,并在2015年贡献给Cloud Native Computing Foundation (CNCF)进行维护。它基于Borg项目的…

202427读书笔记|《猫的自信:治愈系生活哲学绘本》——吸猫指南书,感受猫咪的柔软慵懒与治愈

202427读书笔记|《猫的自信:治愈系生活哲学绘本》——吸猫指南书,感受猫咪的柔软慵懒与治愈 《猫的自信:治愈系生活哲学绘本》作者林行瑞,治愈系小漫画绘本,10分钟可以读完的一本书,线条明媚,自…

Linux-RT特点与简单应用

Linux-RT是指Linux Real-Time(实时)的简称,它是针对实时性能优化的Linux内核版本。传统的Linux内核并不是专为实时性设计的,因此在一些对实时性要求较高的应用场景下,可能无法满足实时性要求。Linux-RT通过对Linux内核…

【VTKExamples::PolyData】第三十四期 MiscPointData GetMiscPointData

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 本文分享VTK样例MiscPointData,该样例主要介绍如何为PolyData添加PointData属性数据。 VTK样例GetMiscPointData,该样例介绍如何获取PointData属性数据。 希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞…

量化巨头“卖空”被刷屏!网友:又一类量化策略要“收摊”了

量化圈遇到了龙年首宗“大事件”! 2月20日晚间,沪深交易所同时出手对量化巨头灵均投资的异常交易行为进行“处理”。 沪深交易所均称发现灵均在2月19日开盘1分钟内,名下多个账户通过计算机程序自动生产交易指令,短时间大量下单卖…

公寓报修|公寓报修管理系统|基于springboot公寓报修管理系统设计与实现(源码+数据库+文档)

公寓报修管理系统目录 目录 基于springboot公寓报修管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、住户管理 2、房间管理 3、维修人员管理 4、维修分类管理 5、物品信息管理 6、维修申请管理管理 四、数据库设计 1、实体ER图 五、核心代码 六、…

IO 作业 24/2/20

一、思维导图 二、习题 #include <myhead.h> int main(int argc, const char *argv[]) {FILE *fpNULL;FILE *fqNULL;pid_t pidfork();if(pid>0){if((fpfopen("./text.txt","r"))NULL){perror("fopen error");return -1;} if((f…

天机星在十二宫

文章目录 前言内容总结 前言 天机星在十二宫 内容 天机星在十二宫 天机属木&#xff0c;南斗第三益算是善星&#xff0c;化气为善。 天机星为轴星&#xff0c;有此天机轴星&#xff0c;方能订十八星曜之位。 天机为兄弟宮主。是动星&#xff0c;似轮轴不停转动&#xff0c;…