Mysql(3:Mysql事务)

news2024/9/29 10:33:16

目录

说明

前言

事务

ACID:

并发事务的问题:

解决方案:

uddo log 和redo log的区别:

先了解数据库的页概念:

redo log:

undo log:

区别:

mvcc:


说明


本文适合刚刚学习Java的初学者,也可以当成阿岩~的随手笔记.接下来就请道友们和我一起来学习吧!

如果本文有写的不对的地方,请道友们一定要说出来,避免影响到刚刚学习Java的道友们,也让阿岩~进行更新于改进,在这里谢谢各位道友了!

前言

在使用Mysql的时候总会听到事务,但是不知道事务是什么,或者事务是干什么的?

事务

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

ACID:

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

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

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

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

(可根据转账案例来说:A向B转账:原子性来保证一起成功或全部失败. 一致性,当A-1000后B必须增加1000. 隔离性来保证当前转账不会受到外部环境影响. 持久性,当转账成功后是永久的)

并发事务的问题:

脏读: 一个事务读到另外一个事务还没有提交的数据

不可重复读: 一个事务先后读取同一条记录,但两次读取的数据不同,称之为不可重复读

幻读: 事务A查询数据时发现没有,就去插入数据,但B事务已经插入数据.事务A去插入数据时发现已经有了,事务A就去读取数据,但因为已经解决了事务不可重复读的问题,就导致事务A一直查到数据为空

解决方案:

对事物进行隔离

uddo log 和redo log的区别:

先了解数据库的页概念:

缓冲池(buffer pool): 主内存中的一个区域,里面可以缓存磁盘上经常操作的真实数据,在执行增删改查时,先操作缓冲池中的数据(若缓存池中没有数据,则从磁盘加载并缓存),以一定频率刷新到磁盘,从而减少磁盘IO,加快处理速度

数据页(pege):是innoDB储存引擎磁盘管理的最小单元,每个页的大小默认为16KB.页中储存的是行数据

redo log:

重做日志,记录的是事务提交时数据页的物理修改,是用来实现事务的持久性.

该日志文件由两部分组成:重做日志缓冲(redo log buffer)以及重做日志文件(redo log file),前者是在内存中,后者在磁盘中.当事务提交之后会把所有修改信息都存到该日志文件中,用于在刷新脏页到磁盘,发生错误是,进行数据恢复使用

undo log:

回滚日志,用于记录数据被修改前的信息,作用包含两个:提供回滚和MVCC(多版本并发控制).undo log和redo log记录物理日志不一样,它是逻辑日志

  1. 可以任务当删除一条记录时,undo log中会记录一条对应的insert 记录,反之依然

  2. 当修改一条记录时,它记录一条向反的修改记录.当执行rollback时,就可以从undo log中的逻辑记录读取到相应的内容并进行回滚.

    undo log可以实现事务的一致性和原执行

区别:

redo log: 记录的是数据页的物理变化,服务宕机可用来同步数据\

undo log: 记录的是逻辑日志,当事务回滚时,通过逆操作恢复原来的数据

redo log: 保证了事务的持久性,undo log保证了事务的原子性和一致性

mvcc:

指一个数据的多个版本,使得读写操作没有冲突

                                                                                                                        ------阿岩~的随手笔记

预告:

道友们让我出一篇关于Mysql基础的教程.拿我下一篇会将Mysql基础以笔记的形式记录下来

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

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

相关文章

SSM环卫人员管理平台—计算机毕业设计源码36412

目 录 摘要 1 绪论 1.1背景及意义 1.2国内外研究概况 1.3研究内容 1.4 ssm框架介绍 1.5论文结构与章节安排 2 环卫人员管理平台系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.2.2数据修改流程 2.2.3数据删除流程 2.3 系统功能分析 2.3.1 功能性…

如何使用 Bittly 进行串口指令调试 - 复杂参数构建与解析

在使用串口进行数据收发时, 如果数据内容比较复杂, 例如包含了时间戳或者校验码等需要计算的数据或者需要处理不同的数据类型以及大小端等,在这种情况下常见的串口调试助手可能处理起来比较麻烦, 但使用 Bittly 的话, …

大功率蓝外光激光模组能使用多长时间?

在高科技迅猛发展的今天,大功率蓝外光激光模组作为精密光学技术的重要成果,广泛应用于科研探索、工业加工及安防监控等多个领域。其强大的光束能量与独特的波长特性,为各行各业带来了前所未有的效率提升与创新可能。然而,对于这一…

量化金融中的 AI 革命:LLMs 如何重新定义交易策略

作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话: 量化金融领域正在经历由大型语言模型(LLMs)引起的人工智能革命,这些模型正在改变交易策略的开发和实施方式,提高市场分析的精确度,增强情绪分析和交易信号的有效性,优化算法交易策略,并强化风…

助农小程序|助农扶贫系统|基于java的助农扶贫系统小程序设计与实现(源码+数据库+文档)

助农扶贫系统小程序 博主介绍:✌️大厂码农|毕设布道师,阿里云开发社区乘风者计划专家博主,CSDN平台Java领域优质创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。✌️ 主要项目:小程序、SpringBoot、SSM、Vue、…

Docker:安装 Memcached 对象缓存的技术指南

请关注微信公众号:拾荒的小海螺 博客地址:http://lsk-ww.cn/ 1、简述 缓存是一种提高应用程序性能的常用技术,通过在内存中存储频繁访问的数据,可以显著减少对数据库的访问次数,从而提升响应速度。Memcached是一个高…

独立站如何批量查收录?常用的3个的方法及其具体操作步骤

独立站批量查收录是SEO优化中重要的一环,它有助于了解网站在搜索引擎中的表现,从而制定更有效的优化策略。以下是几种常用的独立站批量查收录的方法及其具体操作步骤: 一、使用搜索引擎的Site指令结合自动化工具 方法描述&#xff1a…

S32K312 RTD 4.0.0 版本 OCU 例程配置流程说明

一、前言 由于 RTD 4.0.0 版本并没有 S32K312 相关例程,本文基于已有的 S32K344 OCU 例程,新建 S32K312 工程,讲解 OCU 例程的相关配置流程。 二、基本概念 OCU(Output Compare Unit – 输出比较单元)本质上是一个计…

【anki】显示 “连接超时,请更换网络后重试” 怎么办

文章目录 前言一、问题描述二、解决方案 前言 在 anki同步 时遇到的问题 一、问题描述 二、解决方案 从电信换为了移动热点,电脑手机都同步成功了

django开发流程2

一,通过视图函数访问html 1.首先导入render from django.shortcuts import render 2.在mysite下面创建一个目录 templates 3.在mysite下方的settings中修改存放模板的路径 二.添加静态文件 1.在mysite下面创建一个目录 (静态文件) :static 2.自定义静态文件路…

第十三届蓝桥杯真题Python c组A.排列字母(持续更新)

博客主页:音符犹如代码系列专栏:蓝桥杯关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 【问题描述】 小蓝要把一个字符串中的字母按其在字母表中的顺序排列。 例如&a…

AAMAS 24 | 基于深度强化学习的多智能体和自适应框架用于动态组合风险管理

AAMAS 24 | 基于深度强化学习的多智能体和自适应框架用于动态组合风险管理 原创 QuantML QuantML 2024年09月09日 18:23 上海 J.P.Morgan的python教程 Content 本文提出了一个名为MASA的多智能体和自适应框架,利用深度强化学习技术,通过两个合作的智能…

测试数据库交换功能的免费方案

如果想测试数据库交换功能,有几个免费的解决方案可以考虑: 1. 使用社区版或开发者版: 一些商业数据库提供了免费版本,适用于开发和测试使用: - Oracle:Oracle Database提供免费的Oracle Database Exp…

Java项目实战II基于Java+Spring Boot+MySQL的新闻稿件管理系统(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 前在信息爆…

【ArcGIS Pro实操第三期】多模式道路网构建(Multi-model road network construction)原理及实操案例

ArcGIS Pro实操第三期:多模式道路网构建原理及实操案例 1 概述1.1 原理 2 GIS实操2.1 新建文件并导入数据2.2 创建网络数据集2.3 设置连接策略(Setting up connectivity policies)2.4 添加成本(Adding cost attributes&#xff09…

开源AI智能名片链动2+1模式S2B2C商城小程序的内容营销易读性策略

摘要:在数字化时代,内容营销已成为企业吸引用户、促进转化的关键手段。然而,面对“懒”这一普遍的人性弱点,如何使内容更加易读、减少用户思考负担,成为提升营销效果的重要议题。本文基于“别让我思考”的可用性设计原…

TypeScript 设计模式之【模板方法模式】

文章目录 模板方法模式:制作美味咖啡的标准流程模板方法模式的奥秘模板方法模式有什么利与弊?如何使用模板方法模式来优化你的系统代码实现案例模板方法模式的主要优点模板方法模式的主要缺点模板方法模式的适用场景总结 模板方法模式:制作美味咖啡的标…

LeetCode讲解篇之15. 三数之和

文章目录 题目描述题解思路题解代码 题目描述 题解思路 这道题如果我们直接使用三层循环暴力搜索,时间复杂度是O(n3),大概率会超时 那还有更优解吗,答案是绝对的,查询搜索想要优化,就要思考如何进行排除法加速搜索过…

【2023工业3D异常检测文献】基于混合融合的多模态工业异常检测方法Multi-3D-Memory (M3DM)

Multimodal Industrial Anomaly Detection via Hybrid Fusion 1、Background 随着3D传感器的发展,最近发布了具有2D图像和3D点云数据的MVTec-3D AD数据集,促进了多模态工业异常检测的研究。 无监督异常检测的核心思想是找出正常表示与异常之间的差异。…

爵士编曲:walking bass写法

写法 经常会出现在爵士、布鲁斯或者相关的衍生以及融合风格。 特征 1.基础形态是一拍一下顺着和弦音上行或者下行 2.和弦连接处可尝试凑级进” 3.注意和弦起始的第一拍要落在根音 4.音符可以八度跳进 5.加入半音经过音 6.加入Swing律动 还可以在一拍一下的基础上 7.加入音阶进一…