MySQL中DDL操作是否支持事务
MySQL中DDL不支持事务。
- 传统MySQL(5.7及以前版本):
- DDL操作不支持事务
- 执行DDL操作时会隐式提交当前会话的事务
- 无法回滚DDL操作
- MySQL 8.0版本:
- 引入了原子DDL特性(Atomic DDL)
- DDL操作变为原子性的,要么全部成功,要么全部失败
- 但这并不意味着DDL操作可以和普通DML操作放在同一个事务中
- DDL操作仍然会导致前面的事务隐式提交
举例说明:
START TRANSACTION;
INSERT INTO users (name) VALUES ('Alice'); -- DML操作ALTER TABLE users ADD COLUMN age INT; -- DDL操作-- 这里会自动提交前面的INSERT操作-- ALTER TABLE是原子性的INSERT INTO users (name, age) VALUES ('Bob', 25); -- 新的事务开始
COMMIT;
需要注意的要点:
- DDL操作会自动提交之前的事务
- DDL操作本身具有原子性(在MySQL 8.0中)
- 不能在一个事务中混合DDL和DML操作并期望它们一起回滚
原因
MySQL中DDL不支持事务的主要原因有以下几点:
- 元数据锁定机制
- DDL操作需要修改数据库的元数据(表结构、索引等)
- 这些元数据存储在系统表空间中
- 为了保证数据一致性,执行DDL时需要获取元数据锁(MDL锁)
- 这种锁定机制与普通事务的锁定机制不兼容
- 文件系统操作
- DDL操作往往涉及底层文件系统的改动
- 例如:创建/删除表时需要创建/删除物理文件
- 修改表结构时可能需要重建表文件
- 文件系统操作通常不能像数据库事务那样简单回滚
- 涉及到操作系统层面的文件操作,难以保证原子性
- 性能考虑
- DDL操作通常比较耗时
- 如果支持事务,就需要:
- 保持长时间的锁定
- 维护大量的日志信息
- 占用更多的系统资源
- 这会严重影响数据库的整体性能
- 实现复杂性
- 需要维护额外的回滚日志
- 需要处理各种边界情况
- 需要协调多个系统组件(文件系统、锁管理器、日志系统等)
- 实现成本高,容易引入新的bug
- 历史原因
- 早期的MySQL设计就没有考虑DDL事务支持
- 后续要添加这个特性需要对核心架构做大量改动
- 可能影响现有功能的稳定性
这就是为什么即使在MySQL 8.0引入了原子DDL,也仅仅是保证了DDL操作本身的原子性,而不是完整的事务支持。
建议在实际使用中:
- 将DDL操作与普通业务操作分开执行
- DDL操作前做好备份
- 有条件的话使用在线变更工具(如gh-ost、pt-online-schema-change)
- 制定清晰的回滚方案
- 在执行DDL操作时,确保没有未提交的事务
- 不要依赖DDL的回滚功能
- 在进行架构变更时,最好在业务低峰期进行
相关文章:
MySQL中DDL操作是否支持事务
MySQL中DDL不支持事务。 传统MySQL(5.7及以前版本): DDL操作不支持事务执行DDL操作时会隐式提交当前会话的事务无法回滚DDL操作 MySQL 8.0版本: 引入了原子DDL特性(Atomic DDL)DDL操作变为原子性的&…...
GWO优化决策树回归预测matlab
灰狼优化算法(Grey Wolf Optimizer,简称 GWO)是一种群智能优化算法,由澳大利亚格里菲斯大学的 Mirjalii 等人于 2014 年提出。该算法的设计灵感源自灰狼群体的捕食行为,核心思想是模仿灰狼社会的结构与行为模式。 在本…...
掌握Spring @SessionAttribute:跨请求数据共享的艺术
SessionAttribute注解在Spring中的作用,就像是一个“数据中转站”。 在Web应用中,我们经常需要在多个请求之间共享数据。比如,用户登录后,我们需要在多个页面或请求中保持用户的登录状态。这时,SessionAttribute注解就…...
python读取Excel表格内公式的值
背景:在做业务周报的时候,有一个Excel模板,表里面包含了一些公式,dataframe写入到Excel的时候,有公式的部分通过python读出来的结果是None,需要进行优化参考链接: 如何使用openpyxl读取Excel单元…...
第三十八章:阳江自驾之旅:挖蟹与品鲜
经历了惠州海边那趟温馨又欢乐的自驾之旅后,小冷和小颖心中对旅行的热情愈发高涨。闲暇时,两人总会坐在客厅里,翻看着旅行杂志,或是在网上搜索各地的美景,那些充满魅力的地方不断吸引着他们,也让他们对下一…...
C++小等于的所有奇数和=最大奇数除2加1的平方。
缘由 三种思路解题:依据算术推导得到一个规律:小等于的所有奇数和等于最大奇数除以2加1的平方。将在后续发布,总计有十种推导出来的实现代码。 int a 0,aa 1,aaa 0;cin >> a; while (aa<a) aaa aa, aa 2;cout << aaa;i…...
设置IDEA的内存大小,让IDEA更流畅: 建议设置在 2048 MB 及以上
文章目录 引言I 更改内存设置基于窗口界面进行内存设置修改内存配置文件II IDEA中的一些常见问题及其解决方案引言 方式一:基于窗口界面进行内存设置方式二:修改内存配置文件I 更改内存设置 基于窗口界面进行内存设置 打开IDEA,上方菜单栏 Help > Change Memory Settin…...
Ranger Hive Service连接测试失败问题解决
个人博客地址:Ranger Hive Service连接测试失败问题解决 | 一张假钞的真实世界 异常信息如下: org.apache.ranger.plugin.client.HadoopException: Unable to connect to Hive Thrift Server instance.. Unable to connect to Hive Thrift Server inst…...
车机音频参数下发流程
比如以audioControlWrapper.setParametersToAmp(keyPairValues); 下发banlance为例,链路如下 hal层 1. AudioControl.cpp hardware\interfaces\automotive\audiocontrol\aidl\default\AudioControl.cpp ndk::ScopedAStatus AudioControl::setParametersToAmp(co…...
大模型推理——MLA实现方案
1.整体流程 先上一张图来整体理解下MLA的计算过程 2.实现代码 import math import torch import torch.nn as nn# rms归一化 class RMSNorm(nn.Module):""""""def __init__(self, hidden_size, eps1e-6):super().__init__()self.weight nn.Pa…...
redis之GEO 模块
文章目录 背景GeoHash 算法redis中的GeoHash 算法基本使用增加距离获取元素位置获取元素的 hash 值附近的元素 注意事项原理 背景 如果我们有需求需要存储地理坐标,为了满足高性能的矩形区域算法,数据表需要在经纬度坐标加上双向复合索引 (x, y)&#x…...
21.2.7 综合示例
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 【例 21.7】【项目:code21-007】填充职员表并打印。 本例使用到的Excel文件为:职员信息登记表.xlsx&#x…...
使用Docker + Ollama在Ubuntu中部署deepseek
1、安装docker 这里建议用docker来部署,方便简单 安装教程需要自己找详细的,会用到跳过 如果你没有安装 Docker,可以按照以下步骤安装: sudo apt update sudo apt install apt-transport-https ca-certificates curl software-p…...
【C语言标准库函数】三角函数
目录 一、头文件 二、函数简介 2.1. 正弦函数:sin(double angle) 2.2. 余弦函数:cos(double angle) 2.3. 正切函数:tan(double angle) 2.4. 反正弦函数:asin(double value) 2.5. 反余弦函数:acos(double value)…...
CNN-day9-经典神经网络ResNet
day10-经典神经网络ResNet 1 梯度消失问题 深层网络有个梯度消失问题:模型变深时,其错误率反而会提升,该问题非过拟合引起,主要是因为梯度消失而导致参数难以学习和更新。 2 网络创新 2015年何凯明等人提出deep residual netw…...
淘宝分类详情数据获取:Python爬虫的高效实现
在电商领域,淘宝作为中国最大的电商平台之一,其分类详情数据对于市场分析、竞争对手研究以及电商运营优化具有不可估量的价值。通过Python爬虫技术,我们可以高效地获取这些数据,为电商从业者提供强大的数据支持。 一、为什么选择…...
机器学习 —— 深入剖析线性回归模型
一、线性回归模型简介 线性回归是机器学习中最为基础的模型之一,主要用于解决回归问题,即预测一个连续的数值。其核心思想是构建线性方程,描述自变量(特征)和因变量(目标值)之间的关系。简单来…...
33.日常算法
1.螺旋矩阵 题目来源 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] class Solution { public:vec…...
#渗透测试#批量漏洞挖掘#微商城系统 goods SQL注入漏洞
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。 目录 一、漏洞概述 二、漏洞复现步骤 三、技术…...
【翻译+论文阅读】DeepSeek-R1评测:粉碎GPT-4和Claude 3.5的开源AI革命
目录 一、DeepSeek-R1 势不可挡二、DeepSeek-R1 卓越之处三、DeepSeek-R1 创新设计四、DeepSeek-R1 进化之路1. 强化学习RL代替监督微调学习SFL2. Aha Moment “啊哈”时刻3. 蒸馏版本仅采用SFT4. 未来研究计划 部分内容有拓展,部分内容有删除,与原文会有…...
ChatGPT开发者实战指南:从API集成到应用部署的完整资源导航
1. 项目概述:一份面向开发者的ChatGPT资源导航 如果你是一名开发者、产品经理,或者任何对AI应用构建感兴趣的技术爱好者,最近几个月肯定被ChatGPT和GPT-3相关的新闻、工具和项目刷屏了。信息爆炸带来的一个直接问题是:好东西太多…...
MediaCreationTool.bat:解决Windows安装媒体创建痛点的灵活工具
MediaCreationTool.bat:解决Windows安装媒体创建痛点的灵活工具 【免费下载链接】MediaCreationTool.bat Universal MCT wrapper script for all Windows 10/11 versions from 1507 to 21H2! 项目地址: https://gitcode.com/gh_mirrors/me/MediaCreationTool.bat …...
3步解锁Cursor AI编程助手完整功能:多账户管理与设备重置终极方案
3步解锁Cursor AI编程助手完整功能:多账户管理与设备重置终极方案 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reach…...
5分钟搞定Windows激活:KMS_VL_ALL_AIO一键激活全指南
5分钟搞定Windows激活:KMS_VL_ALL_AIO一键激活全指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 你是否刚重装完系统,面对"Windows未激活"的提示感到头疼&…...
3个技巧快速掌握arp-scan局域网设备发现
3个技巧快速掌握arp-scan局域网设备发现 【免费下载链接】arp-scan The ARP Scanner 项目地址: https://gitcode.com/gh_mirrors/ar/arp-scan 在网络管理工作中,您是否经常遇到这样的困扰:明明设备连接了网络,却无法通过常规ping命令发…...
卸载软件后右键菜单残留?用PowerShell精准清理注册表(附一键备份脚本)
彻底告别右键菜单残留:PowerShell注册表清理实战指南 刚卸载完某款压缩软件,却发现右键菜单里依然顽固地留着它的选项——这种经历恐怕不少Windows用户都遇到过。上周帮同事处理电脑时,就遇到了一个典型案例:卸载"可牛压缩&q…...
如何在Windows上轻松安装APK文件:告别模拟器的完整指南
如何在Windows上轻松安装APK文件:告别模拟器的完整指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想要在Windows电脑上直接运行Android应用…...
Fujirebio宣布全自动Lumipulse® G pTau 217血浆检测试剂盒获得CE认证
H.U. Group Holdings Inc.及其全资子公司Fujirebio今日宣布,Fujirebio Europe N.V.已依据《欧盟(EU) 2017/746体外诊断医疗器械法规》(IVDR)取得Lumipulse G pTau 217血浆检测试剂盒的CE认证。该化学发光酶免疫分析(CLEIA)检测可对人体血浆(K2 EDTA)中的苏氨酸217磷…...
SBQE:量子机器学习数据编码的创新方法
1. SBQE:量子机器学习数据编码的新范式量子计算领域最近迎来了一项突破性进展——SBQE(Shot-Based Quantum Encoding)数据编码方法。作为一名长期跟踪量子机器学习发展的研究者,我亲历了这项技术从理论提出到实验验证的全过程。SB…...
手把手复现文献案例:用Design-Expert做阿维菌素发酵培养基的响应面优化
手把手复现文献案例:用Design-Expert做阿维菌素发酵培养基的响应面优化 在生物工程和发酵工艺优化领域,响应面法(Response Surface Methodology, RSM)已成为提升产物产量的黄金标准。本文将以胡栋等学者2018年发表在《中国抗生素杂…...
