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

Online DDL Operations

1、什么是 Online DDL

MySQL 的DDL(Data Definition Language)包括增减字段、增减索引等操作。在 MySQL 5.6 之前,MySQL 的 DDL 操作会按照原来的表复制一份,并做相应的修改。

Online DDL 常用的几种操作:索引相关操作、主键相关操作、列相关操作、表相关操作。

-- Online DDL操作:加索引 ALTER TABLE tableA ADD INDEX idx_col1 (col1),ALGORITHM=INPLACE, LOCK=NONE, ADD INDEX idx_col2 (col2),ALGORITHM=INPLACE, LOCK=NONE; -- Online DDL操作:指定位置加字段 ALTER TABLE tableA ADD COLUMN col3 BIGINT UNSIGNED COMMENT '列3' AFTER col1, ALGORITHM=INPLACE; -- Online DDL操作:不指定位置加字段 ALTER TABLE tableA ADD COLUMN col3 BIGINT UNSIGNED COMMENT '列3', ALGORITHM=INSTANT;

MySQL从5.6.17以后,支持在线修改表结构操作(online ddl),即在变更表结构的过程中,不阻塞dml和dql操作.

根据操作过程中是否需要表拷贝,online ddl可分为下面两大类:

1.需要表拷贝的 ddl 操作:
增加、删除、重排列。
增加、删除主键。
改变表的 ROW_FORMAT 或 KEY_BLOCK_SIZE属性。
改变的字段的null状态。
执行OPTIMIZE TABLE,优化表。
使用 FORCE 选项重建表。
使用ALTER TABLE … ENGINE=INNODB 语句。
首次创建全文索引。

2.不需要表拷贝的 ddl 操作:
创建、增加、删除普通索引。
创建第二个及后续的全文索引。
为字段设置默认值。
改变auto-increment值。
删除外键约束。
添加外键约束( 只有在foreign_key_checks=off时)
仅仅改变列的名称
设置表的持续统计选项(STATS_PERSISTENT, STATS_AUTO_RECALC STATS_SAMPLE_PAGES)

特别说明:全文索引需要特别注意,创建了全文索引的表基本上不支持在线ddl操作。

ySQL 5.6 Online DDL把这种特性扩展到了添加列、删除列、修改列类型、列重命名、设置默认值等等,实际效果要看所使用的选项和操作类别来定。

5、相关链接

https://dev.mysql.com/doc/refman/8.0/en/innodb-online-ddl-operations.html

https://blog.csdn.net/qq_35923846/article/details/138844057

https://cloud.tencent.com/developer/article/1843985

https://www.yisu.com/jc/33784.html

https://www.jianshu.com/p/03edd74f8346

http://www.jsqmd.com/news/615588/

相关文章:

  • ESP32便携电子相册DIY指南:硬件选型与低功耗优化
  • 百川2-13B-4bits量化版对话历史管理:OpenClaw多轮任务上下文保持
  • 设置echarts 图例为长方形
  • WebConfig:ESP32/ESP8266嵌入式Web配置框架深度解析
  • Arduino Ethernet库深度解析与W5500硬件协同开发指南
  • 仅限首批200名.NET MVP试用的Blazor性能诊断AI插件(2026 Q1内部泄露版),自动定位热路径+生成优化PR
  • ATCODER ABC C题解种
  • 软件人员可以关注的 Skill,亲测确实不错,值得试一下
  • 好用有省钱的电脑多开神奇工具
  • 开源协议选择指南:从MIT到GPL的实战解析
  • Docker 容器中运行 AI CLI 工具:用户隔离与持久化卷实战指南撂
  • Spring Boot 4.0 Agent-Ready究竟解决了什么?3大生产级痛点+5个真实金融场景验证
  • OpenClaw小龙虾产品形态
  • OpenClaw安全指南:千问3.5-9B本地化部署的数据隐私保护
  • OpenClaw安装使用指南
  • 单调队列优化多重背包 学习笔记 详解瓜
  • Java 测试策略 2026:构建高质量的测试体系
  • Linux内核中的中断处理机制详解
  • 一款基于 .NET 开源、跨平台应用程序自动升级组件阅
  • RT-Thread实时操作系统入门与实践指南
  • PHP代码质量断崖式提升,从人工Code Review到AI驱动校验闭环(含GitHub Action自动化模板)
  • 嵌入式PWM音调生成库:轻量、实时、无依赖的蜂鸣器驱动方案
  • 2026年Q2上海高评价拆除公司推荐榜:酒店拆除公司、上海拆除公司、专业拆除公司、写字楼拆除公司、办公室拆除公司选择指南 - 优质品牌商家
  • 三场统一论未来必将验证的12条终极预言
  • 一文搞懂 Spring Cloud:从入门到实战的微服务全景指南(建议收藏)翟
  • Linux驱动开发:procfs接口实现与优化
  • 抗老面霜深度解析:从贵妇到国货
  • 喔去,litellm 竟然被投毒了,赶紧检查你的机器中招了没有稳
  • 三场正交统一论体系文章:气态巨行星地壳消失之谜与雷暴闪电穿透路径统一模型
  • 2025届学术党必备的AI写作方案横评