事务~~~

1、四大特性:

A 原子性:对数据的一组操作,要么执行成功,要么不执行

C 一致性:事务前后的状态要保持一致,可以理解为数据的一致性

I 隔离性:多个事务之间是隔离的,互不影响

D 持久性:事务中对数据库执行的修改操作都将在磁盘上保留下来

  只有保证了原子性、隔离性、持久性才能保证事务的一致性。

2、事务的状态:

  • 活动的(active):事务对应的数据库操作正在执行过程中时,我们就说该事务处在活动的状态。
  • 部分提交的(partially committed):当事务中的最后一个操作执行完成,但由于操作都在内存中执行,所造成的影响并没有刷新到磁盘时,我们就说该事务处在部分提交的状态。
  • 失败的(failed):当事务处在活动的或者部分提交的状态时,可能遇到了某些错误(数据库自身的错误、操作系统错误或者直接断电等)而无法继续执行,或者人为的停止当前事务的执行,我们就说该事务处在失败的状态。
  • 中止的(aborted):如果事务执行了半截而变为失败的状态,比如我们前边唠叨的狗哥向猫爷转账的事务,当狗哥账户的钱被扣除,但是猫爷账户的钱没有增加时遇到了错误,从而当前事务处在了失败的状态,那么就需要把已经修改的狗哥账户余额调整为未转账之前的金额,换句话说,就是要撤销失败事务对当前数据库造成的影响。书面一点的话,我们把这个撤销的过程称之为回滚。当回滚操作执行完毕时,也就是数据库恢复到了执行事务之前的状态,我们就说该事务处在了中止的状态。
  • 提交的(committed):当一个处在部分提交的状态的事务将修改过的数据都同步到磁盘上之后,我们就可以说该事务处在了提交的状态。

随着事务对应的数据库操作执行到不同阶段,事务的状态也在不断变化,一个基本的状态转换图如下所示:

  从图中大家也可以看出了,只有当事务处于提交的或者中止的状态时,一个事务的生命周期才算是结束了。对于已经提交的事务来说,该事务对数据库所做的修改将永久生效,对于处于中止状态的事务,该事务对数据库所做的所有修改都会被回滚到没执行该事务之前的状态。

3、事务的原理:

  • 使用undo log(回滚日志)保证事务的原子性
  • 使用redo log(重做日志)保证事务的持久性
  • 使用锁机制、MVCC等手段保证事务的隔离性

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

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

相关文章

【Linux编译】./build.sh: line 17: $‘\r‘: command not found

文章目录0.运行编译脚本遇到问题:方法 1:使用 dos2unix(推荐)1. 安装 dos2unix2. 递归转换整个目录方法 2:使用 sed(无需安装额外工具)方法 3:使用 tr(仅单文件&#xff…

Weblogic历史漏洞利用

文章目录漏洞介绍WebLogic 漏洞概述历史漏洞利用弱口令CVE-2014-4210CVE-2018-2894CVE-2019-2725CVE-2020-14882漏洞介绍 Oracle WebLogic Server 是一个用于开发和部署企业级 Java 应用的服务器平台,但其历史上存在多个严重漏洞,尤其以远程代码执行&am…

[Rust 基础课程]使用 Cargo 创建 Hello World 项目

Cargo(https://crates.io/) 是 Rust 语言中最常用的构建工具和包管理工具,我们看看怎么通过 Cargo 创建一个 Hello World 项目并运行。 :::warning 通过官方的 Rust 安装方式安装 Rust,Cargo 是同时默认安装好的了 ::: 首先&am…

C语言 --- 函数递归

函数递归一、什么是函数递归二、函数递归的要点三、示例1.计算n的阶乘2.提取一个任意正整数的所有位数,按顺序排列3.获取第n个斐波那契数,最开始的两个数是1,1四、总结一、什么是函数递归 函数递归是一种解决问题的思想,是将一个…

GitHub 趋势日报 (2025年07月14日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图1916claude-code795the-book-of-secret-knowledge728free-for-dev547markitdown367…

PyTorch中张量(TensorFlow)操作方法和属性汇总详解和代码示例

1、张量的操作汇总 下面是 PyTorch 中常见的 张量操作方法汇总,包括 创建、索引、变换、数学运算、广播机制、维度操作 等内容,并附上详解和代码示例,便于系统学习与实战参考。一、张量创建(torch.tensor 等) import t…

统一日志格式规范与 Filebeat+Logstash 实践落地

背景 在多部门、多技术栈并存的企业环境中,日志收集与分析是保障系统稳定运行的核心能力之一。然而,不同开发团队采用各异的日志打印方式,导致日志数据结构混乱,严重影响后续的收集、存储、检索与告警效率。 比如我们大部门就有多…

【鸿蒙HarmonyOS】鸿蒙app开发入门到实战教程(三):实现一个音乐列表的页面

鸿蒙里面,实现一个音乐播放的列表,模拟数组的数据展示 实现效果代码实现 准备数据 songs:SongItemTypes[] [{img:https://yjy-teach-oss.oss-cn-beijing.aliyuncs.com/HeimaCloudMusic/0.jpg,name:直到世界的尽头,author:WANDS},{img:https://yjy-teach-oss.oss-cn…

2025年渗透测试面试题总结-2025年HW(护网面试) 47(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 2025年HW(护网面试) 47 1. UDF提权 2. 命令执行与代码执行的区别 3. 文件包含利用姿势 4. 漏洞复现流程 …

iPhone 数据擦除软件评测(最新且全面)

当您准备出售、捐赠或回收 iPhone 时,仅仅恢复出厂设置并不足以保证您的个人数据彻底消失。专业的 iPhone 数据擦除软件采用先进的技术,确保您的敏感信息永久无法恢复。本文回顾了十种流行的 iPhone 数据擦除工具,详细介绍了它们的功能、优点…

Qt 将触摸事件转换为鼠标事件(Qt4和Qt5及以上版本)

在Qt中,触摸事件(QTouchEvent)和鼠标事件(QMouseEvent)是两种不同的输入事件类型。通常情况下,触摸事件不会自动转换为鼠标事件,因为它们代表的是不同的输入设备(触摸屏 vs 鼠标&…

Blender 云渲染高效流程:渲染 101 集群加速实战​

一、核心优势:适配 Blender 全场景需求​ ✅ 全渲染器深度兼容​ Cycles(CPU/GPU 模式):云端 4090 显卡渲染速度比本地快 12 倍,支持 8K 分辨率 16K 纹理无压力​ Eevee 实时渲染:集群同步输出预览动画&am…

SQL学习记录01

什么是SQL? Structured Query Language (结构化查询语言),与关系型数据库进行通信的标准语言。什么是数据库?“按照数据结构来组织、存储、和管理数据的仓库。”一个长期存储在计算机内的、有组织的、可共享的、统一管…

医疗项目如何应对法规变更?

医疗项目应对法规变更的关键策略包括建立法规监测体系、及时内部培训和沟通、调整业务流程和合规标准、技术系统快速迭代升级。 其中,建立有效的法规监测体系尤其重要。这意味着企业需要实时关注监管机构发布的政策更新和公告,迅速理解法规变化内容及对自…

AI Top10

AI 前十排名排名团队/机构名称国家核心优势领域1DeepMind英国强化学习、Alpha系列模型2OpenAI美国GPT系列、多模态大模型3DeepSeek中国高效NLP模型、开源生态建设4Google Brain美国Transformer架构、TensorFlow框架5Meta AI (FAIR)美国计算机视觉、Llama系列模型6NVIDIA Resear…

LabVIEW通知器函数应用

介绍LabVIEW通知器(Notifier)函数,演示两类并行循环通信场景:单对循环数据交互、多循环通知聚合,含程序框图(数据发送 / 接收、多循环通知)与前面板(数据显示)。功能说明…

推荐《Python 编程:从入门到实践》之Python编程的基础知识

在 Python 学习资源琳琅满目的当下,《Python 编程:从入门到实践》脱颖而出,堪称 Python 入门的不二之选。本书由经验丰富的教育工作者撰写,以清晰易懂的语言和循序渐进的方式,引领读者从 Python 的基础语法逐步迈向实际…

Kafka入门和基础配置

目录Kafka入门消息引擎系统ABC快速搞定Kafka术语kafka三层消息架构名词术语Kafka基础Kafka部署参考重要配置参数Broker端参数Topic级别参数JVM参数Kafka是消息引擎系统,也是分布式流处理平台Kafka入门 消息引擎系统ABC 民间版:系统 A 发送消息给消息引…

OPENPPP2 VEthernet 网络协议堆栈(CTCP)VNetStack 深度技术解析

🌐 OPENPPP2 VEthernet 网络协议堆栈(CTCP)VNetStack 深度技术解析🏗️ 一、系统架构全景图 #mermaid-svg-FdlbKZCGQDDbvOL6 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermai…

Gartner发布2025年中国网络安全成熟度曲线:网络安全的重点正转向保护AI、推动业务转型和增强组织韧性

网络安全的重点正转向保护人工智能、推动业务转型和增强组织韧性。首席信息官及其安全和风险管理主管可以利用这份技术成熟度曲线来识别实用且高价值的技术和实践,从而保持安全和敏捷。 战略规划假设 到2027年,60%的中国大型组织将在安全运营中心&#x…