目录

  • 1. 什么是事务?
  • 2. 事务的ACID特性(重要)
  • 3. 事务控制语法
  • 4. 隔离级别与并发问题

1. 什么是事务?

事务(Transaction)是由一组SQL语句组成的逻辑单元,这些操作要么全部成功,要么全部失败。
案例——银行转账:
在这里插入图片描述
转账成功: 张三给李四转100元,转账之前张三和李四的总额是1000+1000=2000,转账之后张三和李四的总额是900+1100=2000,这是正确的结果;
转账失败: 如果在转账的过程中张三的余额减了100 之后服务器崩溃了,李四的余额没有 加100,最终两个人的余额之和是900+1000=1900;
如果转账失败之后钱莫名其妙的减少了,势必会带来很多麻烦

2. 事务的ACID特性(重要)

特性说明
原子性(Atomicity)事务内操作要么全成功,要么全失败(转账失败则直接退回到初始状态,成功则落盘保存)
一致性(Consistency)事务前后数据完整性不变 (如转账前后总额不变)
隔离性(Isolation)并发事务相互隔离,防止数据干扰
持久性(Durability)事务提交后数据永久存储

3. 事务控制语法

-- 1. 开启事务(两种方式)
START TRANSACTION; 
BEGIN;-- 2. 设置保存点
SAVEPOINT savepoint1;-- 3. 提交/回滚
COMMIT;       -- 提交
ROLLBACK;     -- 回滚
ROLLBACK TO savepoint1; -- 回滚到保存点-- 4. 自动提交设置
SET autocommit = 0; -- 关闭自动提交(默认=1开启)

注意:

  • 已提交的事务不可回滚
  • 自动提交模式下,一条SQL就是一个事务
  • 显式开启事务时(BEGIN后),必须手动COMMIT

4. 隔离级别与并发问题

MySQL支持4种隔离级别 (从上到下安全性⬆️ 并发性(性能)⬇️)

隔离级别脏读不可重复度幻读
READ UNCOMMITTED (读未提交)
READ COMMITTED (读已提交)
REPEATABLE READ (可重复度(默认))
SERIALIZABLE (串行化)

MySQL 的 InnoDB 存储引擎中通过 Next-Key 锁部分解决幻读问题,比如有20条数据,如果我正在修改第15条数据,那么第 1 - 15 条数据之间是被锁住不允许插入内容的,但是 Next-Key 锁只能锁住前边,不能锁住后边,所以说是解决部分幻读问题

  1. 脏读:事务 A 读取了事务 B 未提交的数据
    • 例:B 修改数据中途崩溃,A 读到中间状态的数据,那么 A 读到的就是没有提交的垃圾数据
  2. 不可重复读:同事务内两次读取结果不同(数据值变化
    事务ADB事务B读取数据X=100修改X=200并提交再次读取X=200事务ADB事务B
  3. 幻读 :相同的查询条件两次返回数据的行数不同
    • 例:A 查询余额 >500 的账户,期间 B 新增满足条件的账户

生产建议:
MySQL 默认 REPEATABLE READ 在多数场景下平衡性能与安全
金融系统可考虑 SERIALIZABLE ,但需测试性能影响
谨慎使用 READ UNCOMMITTED(仅适用于可容忍脏读的场景)

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

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

相关文章

Mock 数据的生成与使用全景详解

Mock 数据的生成与使用全景详解 在后端开发过程中,真实数据往往受限于业务进度、隐私保护或接口未完成等因素,无法及时获取。这时,Mock数据(模拟数据)就成为开发、测试、联调不可或缺的利器。本文将从Mock数据的意义、常用场景、主流工具、实战案例到最佳实践,带你全面掌…

HTML 标题标签

需求&#xff1a;在网页显示六级标题标签。代码&#xff1a;//需求&#xff1a;在网页显示六级标题标签。 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title></title></head><body><h1>一级标题&l…

(限免!!!)全国青少年信息素养大赛-算法创意实践挑战赛小学组复赛(代码版)

选择题部分在 C 中&#xff0c;以下代表布尔类型的是&#xff08;  &#xff09;选项&#xff1a;A. double B. bool C. int D. char答案&#xff1a;B解析&#xff1a;C 中布尔类型的关键字为bool&#xff0c;用于存储逻辑值true或false。执行以下程序&#xff0c;输出的…

编译器优化——LLVM IR,零基础入门

编译器优化——LLVM IR&#xff0c;零基础入门 对于大多数C开发者而言&#xff0c;我们的代码从人类可读的文本到机器可执行的二进制文件&#xff0c;中间经历的过程如同一个黑箱。我们依赖编译器&#xff08;如GCC, Clang, MSVC&#xff09;来完成这项复杂的转换。然而&#x…

react中为啥使用剪头函数

在 React 中使用箭头函数&#xff08;>&#xff09;主要有以下几个原因&#xff1a;1. 自动绑定 this传统函数的问题&#xff1a;在类组件中&#xff0c;普通函数的this指向会根据调用方式变化&#xff0c;导致在事件处理函数中无法正确访问组件实例&#xff08;this为undef…

JavaSE-多态

多态的概念在完成某个行为时&#xff0c;不同的对象在完成时会呈现出不同的状态。比如&#xff1a;动物都会吃饭&#xff0c;而猫和狗都是动物&#xff0c;猫在完成吃饭行为时吃猫粮&#xff0c;狗在完成吃饭行为时吃狗粮&#xff0c;猫和狗都会叫&#xff0c;狗在完成这个行为…

TDengine 使用最佳实践(2)

TDengine 使用最佳实践&#xff08;1&#xff09; 安装部署 目录规划 软件安装 参数配置 时钟同步 验证环境 集群部署 写入查询 连接方式 数据写入 数据查询 运维巡检 运维规范 数据库启停 状态检查 运维技巧 日常巡检 数据库升级 故障排查 故障定位 日志调试 故障反馈 关于 T…

如何通过公网IP访问部署在kubernetes中的服务?

背景说明我们有些私有化部署的项目&#xff0c;使用k8s来承载服务&#xff0c;通过ingress-nginx转发外部的请求到集群。有时候业主的域名没有申请下来&#xff0c;我们会配置临时的域名&#xff0c;测试同事配置主机hosts来完成功能验证&#xff0c;等功能验证完毕后&#xff…

Datawhale AI 夏令营2025科大讯飞AI大赛<夏令营:用AI做带货视频评论分析>

赛题题目 任务一&#xff1a;商品识别 基于视频内容识别对应的商品 【情感分析】对评论文本进行多维度情感分析&#xff0c;涵盖维度见数据说明&#xff1b; 任务二&#xff08;文本分类&#xff09;&#xff1a;从非结构化评论中提取情感倾向 评论聚类】按商品对归属指定维度的…

AI 时代的分布式多模态数据处理实践:我的 ODPS 实践之旅、思考与展望

AI 时代的分布式多模态数据处理实践&#xff1a;我的 ODPS 实践之旅、思考与展望 &#x1f31f;嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 总有人间一两风&#xff0c;填我十万八千梦。 &#x1f680; 路漫漫其修远兮&#xff0c;吾将上下而求索。 目录 1. 什…

硬件工程师笔试面试高频考点汇总——(2025版)

目录 1 电子器件部分 1.1 电阻 1.1.1 电阻选型时一般从哪几个方面进行考虑? 1.1.2 上拉下拉电阻的作用 1.1.3 PTC热敏电阻作为电源电路保险丝的工作原理 1.1.4 如果阻抗不匹配&#xff0c;有哪些后果 1.1.5 电阻、电容和电感0402、0603和0805封装的含义 1.1.6 电阻、电…

华为HarmonyOS 5.0深度解析:跨设备算力池技术白皮书(2025全场景智慧中枢)

​​摘要​​HarmonyOS 5.0的​​跨设备算力池技术​​正在重构终端计算范式。本文首次系统性拆解其技术内核&#xff1a;通过​​异构硬件资源虚拟化​​、​​任务流图调度引擎​​、​​确定性时延网络​​三大支柱&#xff0c;实现手机、汽车、智慧屏等设备的算力动态聚合与…

ASP.NET Core 中的延迟注入:原理与实践

在软件开发中&#xff0c;依赖注入已成为构建可维护、可测试和可扩展应用程序的核心模式。ASP.NET Core 内置的依赖注入容器为我们管理服务生命周期提供了极大的便利。然而在某些特定场景下&#xff0c;我们可能不希望某个依赖项在宿主对象被创建时立即实例化&#xff0c;而是希…

PHP内存溢出问题的深度分析与系统解决方案

文章目录一、问题本质&#xff1a;什么是PHP内存溢出&#xff1f;内存管理核心原理二、高频内存溢出场景深度解析场景1&#xff1a;大数据集不当处理场景2&#xff1a;无限递归陷阱场景3&#xff1a;实体关系映射&#xff08;ORM&#xff09;的N1问题场景4&#xff1a;未及时释…

常见 HTTP 方法的成功状态码200,204,202,201

HTTP 协议中&#xff0c;操作成功后的状态码选择取决于操作类型和响应内容&#xff0c;并非所有非 GET/POST 请求都返回 204。以下是常见 HTTP 方法的成功状态码规范&#xff1a;1. GET200 OK&#xff1a;默认成功状态码&#xff0c;表示请求成功且返回了资源内容。206 Partial…

【论文阅读】Think Only When You Need with Large Hybrid-Reasoning Models

Think Only When You Need with Large Hybrid-Reasoning Models2 Large Hybrid-Reasoning Models2.1 Problem Formulation关键定义与目标核心挑战与解决方案2.2 第一阶段&#xff1a;混合微调&#xff08;Hybrid Fine-Tuning, HFT&#xff09;核心设计数据构建数据集统计优化目…

洛谷 P13014:[GESP202506 五级] 最大公因数

【题目来源】 https://www.luogu.com.cn/problem/P13014 【题目描述】 对于两个正整数 &#xff0c;他们的最大公因数记为 。对于 个正整数 &#xff0c;他们的最大公因数为&#xff1a; 给定 个正整数 以及 组询问。对于第 组询问&#xff0c;请求出 的最大公因数&…

构建应用内智能:衡石嵌入式BI如何打造“指标中台”驱动的场景化分析

在当今数据驱动的业务环境中&#xff0c;将智能分析能力深度嵌入业务应用&#xff08;如CRM、ERP、SCM、自研SaaS&#xff09;已成为刚需。然而&#xff0c;实现高性能、一致性、可治理的嵌入式分析面临巨大技术挑战。衡石科技通过其核心的指标中台&#xff08;Metric Platform…

带货视频评论洞察 Baseline 学习笔记 (Datawhale Al夏令营)

一、 项目认识背景&#xff1a;电商直播/短视频已积累大量「视频 评论」数据&#xff0c;蕴含了消费者的真实反馈。目标&#xff1a;通过「商品识别 → 情感分析 → 评论聚类」三步&#xff0c;辅助品牌洞察、网红投放评估。二、 Baseline 代码流程1. 读取和预处理video_data …

uniapp中使用uView-plus踩坑记录

​​​1.使用插件市场安装点击到插件市场 零云uview-plus3.0重磅发布&#xff0c;全面的Vue3鸿蒙移动组件库。 - DCloud 插件市场 点击选择项目直接导入就可以&#xff0c;下载完成后会在uni_modules中&#xff0c;这个.gitignore中不可忽略 ​ 使用在main.js里引入 import…