复习mysql中的事务

news2024/11/16 1:45:54

一个事务的开始和结尾必须是 start transaction   |  commit; rollback 

事务特性 

1.原子性多个操作打包成一个整体,要么全部执行,要么一个都不执行。

不过这里的“一个都不执行”并不是真正的全不执行,只是看起来与没执行一样。如果是中间戳错了,就自动把前面已经成功执行的操作,进行还原(rollback,回滚就是通过日志记录数据库事务操作的中间过程,按照原操作的逆操作进行)。

2.一致性:事务执行前后数据可以对上(依靠约束)

3.持久性:事务里执行的操作都是持久生效的,最终会被写在硬盘里,一旦事务执行成功,所有操作产生的修改都会被写在硬盘里。 

4.隔离性:并发执行事务的时候,隔离性,会在执行效率和数据可靠之间做出权衡~~

"隔离"描述的是同时执行的事务之间,相互的影响~~
隔离性越高,并发性就越低;数据越可靠,性能就越低(银行转账)。反之就是点赞数。

 


临时的并非准确的 我们称之为“脏读”。解决脏读问题就得给 写 操作加锁🔒。在进行写操作时,可以使用锁来保证数据的一致性,避免其他事务对数据进行读取。(提交前不能读)


不可重复读问题指的是同一个事务中多次查询同一数据行时,由于其他事务修改了该行数据,导致该事务中多次查询到的结果不一致,出现了“不可重复读”的现象。解决办法就是给读操作加锁。(读的时候不能去修改)


幻读是指在一个事务内,多次执行相同的查询语句,但由于其他事务插入、更新或删除了符合查询条件的数据行,导致每次查询返回的结果集不一致的情况。与不可重复读类似,幻读也可能破坏了事务的隔离性和数据的一致性。

幻读可以看成是不可重复读更进一步,比如一个事务在多次读的时候,虽然读到的数据是一样的,但是结果集是不一样的,第一次读假设是10条记录,第二次读是11条记录,11条中的10条与之前是一样的,但多出来一个。

解决办法就是串行化,彻底放弃并发执行事务,一个接一个执行。(串行化并发性最低,隔离性最高,效率最低,隔离性最高)


小结:

在并发执行事务的过程中,可能产生以下问题:
1.脏读
读到了写事务提交之前的中间数据(脏数据)写加锁.提交之前,不能读~
2.不可重复读
一个事务之内,多次读取同一个数据,发现数据不一样(在读的过程中,另一个事务修改了数据)读加锁.读的时候,不能修改了~

3.幻读
一个事务之内,多次读到的数据,值相同,但是结果集不同.彻底串行化,完全放弃并发执行

 

四种隔离级别:默认是repeatable read (RC)进行了写和读加🔒

越往下,隔离级别越高,并发性越低;

数据可靠越高,性能越低;

 read uncommitted
不做任何处理,事务间随意并发

read committed
对写操作加锁,解决了读脏数据问题

 repeatable read
对读写操作加锁,解决了读脏数据问题,不可重复读问题

serializable
严格串行化,解决了三个由并发引起的问题,并发程度最低,隔离性是最高的

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

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

相关文章

会声会影2024有哪些新功能?好不好用

比如会声会影视频编辑软件,既加入光影、动态特效的滤镜效果,也提供了与色彩调整相关的LUT配置文件滤镜,可选择性大,运用起来更显灵活。会声会影在用户的陪伴下走过20余载,经过上百个版本的优化迭代,已将操作…

【数据科学赛】2023全球智能汽车AI挑战赛 #¥95000 #LLM文档问答 #视频理解

CompHub[1] 最新的比赛会第一时间在群里通知,欢迎加群交流比赛经验!(公众号回复“加群”即可) 以下内容由AI辅助生成,可能存在错误,可进入比赛主页[2]查看更多(文末阅读原文) 比赛主办方 吉利汽车集团、阿…

FreeRTOS学习day1

顾名思义 免费的实时操作系统 用法基本和Linux下的多线程编程类似 探索者开发版实验 动态创建4个任务start_task task1 task2 task3 优先级依次为1 2 3 4 (注意优先级不能为0,0是空闲任务) 我的理解:主线程start_task 主线程 task1 ta…

Linux线程--创建及等待

1.进程与线程 典型的UNIX/Linux进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程后,在程序设计时可以把进程设计成在同一时刻做不止一件事,每个线程各自处理独立的任务。  线程是操作系统能够进行运算调度的…

Java File与IO流学习笔记

内存中存放的都是临时数据,但是在断电或者程序终止时都会丢失 而硬盘则可以长久存储数据,即使断电,程序终止,也不会丢失 File File是java.io.包下的类,File类的对象,用于代表当前操作系统的文件(可以是文…

光学知识整理-偏振光

偏振光 目录基础概念基础概念的补充平面偏振光(线偏振光)部分偏振光圆偏振光椭圆偏振光菲涅耳公式相位关系 反射折射所引起的偏振态的改变斯托克斯倒逆关系重要参数 目录 基础概念 光是横波:光是电磁波,其电场分量(电场强度)E、磁场分量(磁…

网易面试:什么是SPI,SPI和API有什么区别?

说在前面 在40岁老架构师 尼恩的读者交流群(50)中,最近有小伙伴拿到了一线互联网企业如阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格,遇到很多很重要的面试题: 什么是SPI,SPI和API有什么区别? 最近有小…

推理引擎之模型压缩浅析

目录 前言1. 模型压缩架构和流程介绍2. 低比特量化原理2.1 量化基础介绍2.2 量化方法2.3 量化算法原理2.4 讨论 3. 感知量化训练QAT原理3.1 QAT原理3.2 量化算子插入3.3 QAT训练流程3.4 QAT衍生研究3.5 讨论 4. 训练后量化PTQ4.1 动态PTQ4.2 静态PTQ4.3 KL散度实现静态PTQ4.4 量…

PyTorch入门教学——Transforms使用

1、Transforms简介 Transforms在是计算机视觉工具包torchvision下的包,常用于对图像进行预处理,提高泛化能力。具体有: 数据中心化、数据标准化、缩放、裁剪、旋转、翻转、填充、噪声添加、灰度变换、线性变换、仿射变换和亮度、饱和度及对比…

springboot 程序设计优雅退出

一 springboot优雅退出 1.1 概述 在springboot2.3版本后,实现了优雅退出功能。当server.shutdowngraceful启用时,在 web 容器关闭时,web 服务器将不再接收新请求,并将剩余活动执行完成给设置一个缓冲期。缓冲期 timeout-per-shu…

Mysql数据库 2.SQL语言 数据类型与字段约束

Mysql数据类型 数据类型:指的是数据表中的列文件支持存放的数据类型 1.数值类型 Mysql当中有多种数据类型可以存放数值,不同的类型存放的数值的范围或者形式是不同的 注:前三种数字类型我们在实际研发中用的很少,一般整数类型…

2525.根据规则将箱子分类/并查集/动态规划

2525. 根据规则将箱子分类 - 力扣(LeetCode) 给你四个整数 length ,width ,height 和 mass ,分别表示一个箱子的三个维度和质量,请你返回一个表示箱子 类别 的字符串。 如果满足以下条件,那么…

AndroidStudio如何设置中文

AndroidStudio如何设置中文 文章目录 AndroidStudio如何设置中文一、前言二、如何安装中文插件参考资料💘 一、前言 Android Studio 是一个为 Android 平台开发程序的集成开发环境(IDE)。2013年5月16日在 Google I/O 上发布,可供…

springboot+vue开发的视频弹幕网站动漫网站

springbootvue开发的视频弹幕网站动漫网站 演示视频 https://www.bilibili.com/video/BV1MC4y137Qk/?share_sourcecopy_web&vd_source11344bb73ef9b33550b8202d07ae139b 功能: 前台: 首页(猜你喜欢视频推荐)、轮播图、分类…

四、网络请求与路由

一、网络请求 1、Axios请求 Axios是一个基于promise的网络请求库 (1)安装 npm install --save axios(2)引入 import axios from "axios"全局引入 import axios from "axios" import { createApp } from …

深度学习_3_实战_房价预测

梯度 实战 代码: # %matplotlib inline import random import torch import matplotlib.pyplot as plt # from d21 import torch as d21def synthetic_data(w, b, num_examples):"""生成 Y XW b 噪声。"""X torch.normal(0,…

面试知识储备--打包工具篇(webpack和vite)

1.vite常用配置 常用配置 1.preprocessorOptions 传递给 CSS 预处理器的配置选项 2.PostCSS 也是用来处理 CSS 的,只不过它更像是一个工具箱,可以添加各种插件来处理 CSS 3.resolve.extensions 导入时想要省略的扩展名列表。默认值为 [‘.mjs’, ‘.js’…

小团队之间有哪些好用免费的多人协同办公软件

在小团队协作中,选择适合的多人协同办公软件是提高工作效率和团队协作的重要一环。幸运的是,市场上有许多大多数功能都免费的多人协同办公软件,为小团队提供了强大的协作功能和便捷的工作环境。 在本文中,我将根据自己多年的在线…

2.2.C++项目:网络版五子棋对战之数据管理模块的设计

文章目录 一、数据管理模块实现(一)功能 二、设计(一)数据库设计(二)创建user_table类 一、数据管理模块实现 (一)功能 数据管理模块主要负责对于数据库中数据进行统一的增删改查管…

3ds Max2023安装教程(最新最详细)

目录 一.简介 二.安装步骤 软件:3ds Max版本:2023语言:简体中文大小:6.85G安装环境:Win11/Win10/Win8/Win7硬件要求:CPU3GHz 内存16G(或更高)下载通道①百度网盘丨64位下载链接: …