今天调查了一个问题,背景是在aws的 Aurora MySQL上,三百万数据的表里追加列,测试了中间指定位置追加,和默认的末尾追加,发现速度都挺快的。
一般印象里在中间追加应该比默认的情况要慢一些,结果是反而稍微快一点。就想要深入得了解一下。以下为内容。
问题:在追加列时,①default追加到末尾与②指定位置追加两种 性能有什么区别。
语法:
①default默认无需指定位置,会追加到末尾
alter table table_name add column_name CHAR(10) ;
②指定位置,first指定列首,after指定在某一列之后,没有before关键词
alter table table_name ADD column_name CHAR(11) FIRST;
alter table table_name ADD column_name CHAR(11) AFTER column1;
MySQL,在表中添加一列时发生了什么(相同处理速度差不多)
根据指定的算法,该操作可涉及以下步骤:
- 创建表的完整副本
- 创建临时表,以处理并发数据操控语言 (DML) 操作
- 重建此表的所有索引
- 应用并发 DML 更改时应用表锁定
- 减慢并发 DML 吞吐量
MySQL对两者的操作应该是相同的。消耗可见是很大的。
AWS Aurora MySQL中启用fast DDL(不同处理)
查看是否

本文探讨在AWS Aurora MySQL和MySQL中追加列的性能差异,特别是启用fast DDL后的影响。研究发现,启用fast DDL后,默认追加到末尾的性能显著优于指定位置追加,而在SQL Server中,添加列需更复杂操作且不支持指定位置。文章提供了Aurora MySQL与MySQL性能对比的参考资料。
最低0.47元/天 解锁文章
3215

被折叠的 条评论
为什么被折叠?



