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

复习mysql中的事务

一个事务的开始和结尾必须是 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
严格串行化,解决了三个由并发引起的问题,并发程度最低,隔离性是最高的

相关文章:

复习mysql中的事务

一个事务的开始和结尾必须是 start transaction | commit; rollback 事务特性 1.原子性:多个操作打包成一个整体,要么全部执行,要么一个都不执行。 不过这里的“一个都不执行”并不是真正的全不执行,只是看起来与没执行一样。…...

力扣刷题 day52:10-22

1.数组拆分 给定长度为 2n 的整数数组 nums ,你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从 1 到 n 的 min(ai, bi) 总和最大。 返回该 最大总和 。 方法一:排序 #方法一:排序 def arrayPai…...

ELK概述部署和Filebeat 分布式日志管理平台部署

ELK概述部署、Filebeat 分布式日志管理平台部署 一、ELK 简介二、ELK部署2.1、部署准备2.2、优化elasticsearch用户拥有的内存权限2.3、启动elasticsearch是否成功开启2.4、浏览器查看节点信息2.5、安装 Elasticsearch-head 插件2.6、ELK Logstash 部署(在 Apache 节…...

分享一下我家网络机柜,家庭网络设备推荐

家里网络机柜搞了几天终于搞好了,非专业的,走线有点乱,勿喷。 从上到下的设备分别是: 无线路由器(当ap用):TL-XDR6088 插排:德木pdu机柜插排 硬盘录像机:TL-NVR6108-L8P 第二排左边…...

uboot移植之mx6ull_alientek_nand.h文件详解三

一. 简介 mx6ull_alientek_nand.h文件是 开发板的 uboot的一个配置文件。每个开发板都有一个 .h的配置文件。 mx6ull_alientek_nand.h 文件其实是 之前针对正点原子ALPHA开发板移植的 Uboot配置文件。 本文继上一篇文章的学习,地址如下:uboot移植之m…...

[Docker]一.Docker 简介与安装

一、Docker简介与为什么要用 Docker 1.1、Docker 介绍 Docker 是一个跨平台的开源的 应用容器引擎 ,诞生于 2013 年初,基于 Go语言 并遵从 Apache2.0 协议开源, Docker 可以把它理解成虚拟机,但是 Docker 和传统虚拟化方式 有所不同 …...

计算机网络-计算机网络体系结构-传输层

目录 一、UDP 二、TCP 特点 首部格式 连接管理 可靠传输 流量控制(点对点) 拥塞控制(全局) 三、拥塞控制算法 慢开始&拥塞避免 快重传&快恢复 功能一:提供进程与进程之间的逻辑通信 功能二:复用和分用 功能三:对收到的报…...

buuctf[HCTF 2018]WarmUp 1

题目环境&#xff1a; 发现除了表情包&#xff0c;再无其他F12试试发现source.php文件访问这个文件&#xff0c;格式如下&#xff1a;url/source.php回显如下&#xff1a;PHP代码审计&#xff1a; <?php highlight_file(__FILE__); class emmm {public static function ch…...

开源博客项目Blog .NET Core源码学习(4:生成验证码)

开源博客项目Blog中的后台管理登录界面中支持输入验证码&#xff08;如下图所示&#xff09;&#xff0c;本文学习并记录项目中验证码的生成及调用方式。   博客项目中调用VerifyCode类生成验证码&#xff0c;该类位于App.Framwork项目中&#xff0c;命名空间为App.Framwork…...

gin框架39--重构 BasicAuth 中间件

gin框架39--重构 BasicAuth 中间件 介绍gin BasicAuth 解析自定义newAuth实现基础认证注意事项说明 介绍 每当我们打开一个网址的时候&#xff0c;会自动弹出一个认证界面&#xff0c;要求我们输入用户名和密码&#xff0c;这种BasicAuth是最基础、最常见的认证方式&#xff0…...

编译pycaffe过程中遇到的问题及解决

pycaffe是python调用caffe的方式&#xff0c;编译它就是要得到一个so库_pycaffe.so。 如题&#xff0c;在caffe的源码目录下&#xff0c;执行make pycaffe&#xff0c;跳出来一个错误: $ make pycaffe CXX/LD -o python/caffe/_caffe.so python/caffe/_caffe.cpp /usr/bin/ld…...

自然语言处理---Transformer机制详解之Transformer优势

1 Transformer的并行计算 对于Transformer比传统序列模型RNN/LSTM具备优势的第一大原因就是强大的并行计算能力. 对于RNN来说&#xff0c;任意时刻t的输入是时刻t的输入x(t)和上一时刻的隐藏层输出h(t-1)&#xff0c;经过运算后得到当前时刻隐藏层的输出h(t)&#xff0c;这个…...

改进YOLO系列 | YOLOv5/v7 引入 Dynamic Snake Convolution | 动态蛇形卷积

准确分割拓扑管状结构,如血管和道路,在各个领域中至关重要,可以确保下游任务的准确性和效率。然而,许多因素使任务复杂化,包括细小的局部结构和可变的全局形态。在这项工作中,我们注意到管状结构的特殊性,并利用这一知识来引导我们的DSCNet,以在三个阶段同时增强感知:…...

postgresql14-表的管理(四)

表table 创建表 CREATE TABLE table_name --表名 (column_name data_type column_constraint, --字段名、字段类型、约束字段&#xff08;可选&#xff09;column_name data_type, --表级别约束字段...,table_constraint );CREATE TABLE emp1 --创建表 AS SELECT * FROM empl…...

Java--Object类

Java中Object类是所有类的父类&#xff0c;是Java中最高层的类。用户创建一个类时&#xff0c;除非指定继承了某个类&#xff0c;否则都是继承于Object类。 由于所有类都继承于Object类&#xff0c;所以所有类都可以重写Object类中的方法。但是Object类中被final修饰的getClass…...

交换机端口灯常亮 端口up状态 服务器设置ip交换机获取不到服务器网卡mac地址 不能通信

环境: 深信服防火墙 8.0.75 AF-2000-FH2130B-SC S6520X-24ST-SI交换机 version 7.1.070, Release 6530P02 问题描述: 交换机一个vlan下有3台服务器,连接端口2、3、4,2和3连接的服务器正常,交换机3端口灯常亮 端口up状态 服务器自动获取不了地址,改为手动设置ip后,交…...

Linux笔记之diff和vimdiff

Linux笔记之diff和vimdiff code review! 文章目录 Linux笔记之diff和vimdiff一.diff1.1.使用diff比较文件夹1.2.使用diff比较文件1.4.colordiff——带颜色输出差异 二.vimdiff2.1.vimdiff颜色差异2.2.vimfiff调整栏宽2.3.修改颜色变谈&#xff0c;使代码可以看清楚2.4.vimdif…...

目标检测YOLO实战应用案例100讲-基于改进的YOLOV5算法的垃圾分类模型

目录 前言 国内外研究现状 目标检测算法发展现状 YOLO算法的发展现状...

我做不到受每个人喜欢

我做不到受每个人喜欢 我想描述一下昨天发生争吵后我个人的观点&#xff0c;希望能够重新呈现出一种积极的态度。 首先&#xff0c;让我简要梳理一下事件的经过&#xff0c;当天我像往常一样去另一个宿舍找人聊天&#xff0c;可能因为说话声音有点大&#xff0c;坐在我后面的那…...

Linux笔记之diff工具软件P4merge的使用

Linux笔记之diff工具软件P4merge的使用 code review! 文章目录 Linux笔记之diff工具软件P4merge的使用1.安装和配置2.使用&#xff1a;p4merge a.cc b.cc3.配置git 参考博文: Ubuntu Git可视化比较工具 P4Merge 的安装/配置及使用 1.安装和配置 $ wget https://cdist2.per…...

一站式AI开发环境:PyTorch 2.8镜像内预配置VSCode Codex体验

一站式AI开发环境&#xff1a;PyTorch 2.8镜像内预配置VSCode Codex体验 1. 开箱即用的AI开发体验 想象一下这样的场景&#xff1a;当你准备开始一个新的深度学习项目时&#xff0c;不再需要花费数小时配置开发环境、安装依赖包、调试CUDA兼容性问题。PyTorch 2.8镜像内预配置…...

Zigbee无线传感网络:驱动精准农业落地的关键技术实践

1. Zigbee技术如何成为精准农业的"神经末梢" 想象一下&#xff0c;当你走进一个现代化农场&#xff0c;看不到杂乱的电线&#xff0c;却能实时掌握每块田地的土壤湿度、温度、光照强度——这就是Zigbee无线传感网络创造的奇迹。作为农业物联网的"神经末梢"…...

ComfyUI-Manager依赖管理架构深度解析:从传统pip到现代uv的技术演进之路

ComfyUI-Manager依赖管理架构深度解析&#xff1a;从传统pip到现代uv的技术演进之路 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and ena…...

[FPGA]Spartan6 Uart固定波特率读写JY901P惯导模块

这版本是固定波特率&#xff0c;无法修改串口波特率&#xff0c;无法恢复出厂设置&#xff08;出厂设置会更改波特率到9600&#xff0c;除非固定波特率一开始设置为9600&#xff0c;其他写命令都可以成功写入&#xff09;。 1. JY901P交互协议 这个是JY901P惯导模块串口的交互…...

阿里系bx-ua补环境实战:从零到一构建可用的Node.js执行环境

1. 为什么需要补环境&#xff1a;bx-ua加密的特殊性 阿里系bx-ua加密算法在设计上有一个显著特点&#xff1a;它会深度检测代码运行环境。简单来说&#xff0c;这段加密代码会在执行时"四处张望"&#xff0c;检查自己是否运行在真实的浏览器环境中。我在实际项目中遇…...

汽车紧固件最新技术趋势解析:2026上海紧固件专业展有哪些看点

汽车工业正经历一场深刻变革&#xff0c;电动化与智能化的浪潮席卷而来&#xff0c;对作为车辆“骨骼关节”的紧固连接技术提出了前所未有的高要求。汽车紧固件的技术演进路径正清晰地围绕四大核心趋势展开&#xff1a;轻量化、高强度、智能化与绿色化。这不仅是单一技术的突破…...

Microsoft Edge 浏览器下载文件时,提示【xxx可能会损害你的设备。是否仍要保留?】解决方案

一、问题Microsoft Edge 浏览器下载文件时&#xff0c;提示【xxx可能会损害你的设备。是否仍要保留&#xff1f;】当前浏览器版本147.0.3912.60(正式版本)(64位&#xff09;二、解决方案1、打开【开始】菜单&#xff0c;点击【设置】&#xff0c;选择【隐私和安全性】&#xff…...

从NeRF到ConvONet:手把手教你用Python和PyTorch搭建自己的三维重建模型(附代码)

从NeRF到ConvONet&#xff1a;手把手教你用Python和PyTorch搭建自己的三维重建模型&#xff08;附代码&#xff09; 三维重建技术正在彻底改变我们与数字世界的交互方式。想象一下&#xff0c;仅凭几张照片就能重建出精细的3D模型&#xff0c;或者通过简单的视频输入实时生成三…...

易盾滑块验证码v2.27.2的fp参数生成:从环境补全到完整算法扣取(附200行代码解析)

易盾滑块验证码v2.27.2的fp参数深度解析&#xff1a;从环境模拟到算法还原实战 最近在分析某主流验证码服务商的最新版本时&#xff0c;发现其fp参数生成机制有了显著变化。作为前端安全防护的核心环节&#xff0c;指纹参数(fp)的生成质量直接决定了验证码系统的防御能力。本文…...

魔兽争霸3终极兼容性修复:5大核心功能彻底解决90%游戏问题

魔兽争霸3终极兼容性修复&#xff1a;5大核心功能彻底解决90%游戏问题 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3启动闪退、画面…...