在引入在线 DDL之前,将许多 DDL 操作组合到一个ALTER TABLE
语句中是常见的做法。因为每条ALTER TABLE
语句都涉及复制和重建表,所以一次对同一个表进行多次更改会更有效,因为这些更改都可以通过对表的一次重建操作来完成。缺点是涉及 DDL 操作的 SQL 代码更难维护和在不同脚本中重用。如果每次具体更改都不同,您可能必须ALTER TABLE
为每个略有不同的场景构建一个新的复合体。
对于可以在线完成的 DDL 操作,您可以将它们分成单独ALTER TABLE
的语句,以便于编写和维护,而不会牺牲效率。例如,您可能会采用复杂的语句,例如:
ALTER TABLE t1 ADD INDEX i1(c1), ADD UNIQUE INDEX i2(c2),
CHANGE c4_old_name c4_new_name INTEGER UNSIGNED;
复制
并将其分解为可以独立测试和执行的更简单的部分,例如:
ALTER TABLE t1 ADD INDEX i1(c1);
ALTER TABLE t1 ADD UNIQUE INDEX i2(c2);
ALTER TABLE t1 CHANGE c4_old_name c4_new_name INTEGER UNSIGNED NOT NULL;
复制
您可能仍将多部分ALTER TABLE
语句用于:
- 必须按特定顺序执行的操作,例如创建索引,然后是使用该索引的外键约束。
- 操作都使用相同的特定
LOCK
子句,您希望作为一个组成功或失败。 - 无法在线执行的操作,即仍然使用表复制方法的操作。
- 您指定的操作
ALGORITHM=COPY
或old_alter_table=1
,如果需要在特定场景中实现精确的向后兼容性,则强制执行表复制行为。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
MySQL数据库当前和历史事务分析
听见风的声音
377次阅读
2025-04-01 08:47:17
墨天轮个人数说知识点合集
JiekeXu
372次阅读
2025-04-01 15:56:03
MySQL 生产实践-Update 二级索引导致的性能问题排查
chengang
348次阅读
2025-03-28 16:28:31
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
301次阅读
2025-04-15 14:48:05
MySQL8.0直方图功能简介
Rock Yan
278次阅读
2025-03-21 15:30:53
MySQL 有没有类似 Oracle 的索引监控功能?
JiekeXu
268次阅读
2025-03-19 23:43:22
云和恩墨杨明翰:安全生产系列之MySQL高危操作
墨天轮编辑部
261次阅读
2025-03-27 16:45:26
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
252次阅读
2025-04-15 23:49:58
openHalo问世,全球首款基于PostgreSQL兼容MySQL协议的国产开源数据库
严少安
247次阅读
2025-04-07 12:14:29
PG vs MySQL 执行计划解读的异同点
进击的CJR
169次阅读
2025-03-21 10:50:08
TA的专栏
热门文章
我的故障分析及处理思路分享(李真旭)
2020-10-22 11061浏览
公共子表达式消除(Common Subexpression elimination,CSE)
2020-08-26 6184浏览
Oracle数据库的跟踪和分析方法
2020-10-02 5037浏览
2.5.9使用systemd管理MySQL服务器
2020-10-20 4516浏览
初探华为云GaussDB (for MySQL)
2020-12-11 3854浏览
最新文章
28.4.4 INFORMATION_SCHEMA INNODB_BUFFER_POOL_STATS 表
2024-09-29 102浏览
28.4.3 INFORMATION_SCHEMA INNODB_BUFFER_PAGE_LRU 表
2024-09-29 63浏览
28.4.2 INFORMATION_SCHEMA INNODB_BUFFER_PAGE 表
2024-09-29 58浏览
28.4.1 INFORMATION_SCHEMA InnoDB 表参考
2024-09-29 64浏览
28.3.50 INFORMATION_SCHEMA VIEW_TABLE_USAGE 表
2024-09-29 67浏览