在 alter table drop 列之后优化 table 是否有意义?

Does it make sense to optimize the table after alter table drop column?

我在 table employees 中删除了列 name。 如果我 运行 OPTIMIZE TABLE employees,它会减少 space 使用率吗?

我的想法:

文档说 InnoDB 的 optimize table 等于 alter table(如果我没看错 https://dev.mysql.com/doc/refman/8.0/en/optimize-table.html#optimize-table-innodb-details)。

此外,alter table drop column 更改了 table 中的行结构,因此它应该重写所有行。我认为这就是优化发生的地方。

在 运行 任何改变行大小的 ALTER TABLE 之后,没有必要在 InnoDB table 上优化 TABLE。

ALTER TABLE 将行复制到新的 table 空间,并重建索引。这将完成您希望使用 OPTIMIZE TABLE.

完成的相同碎片整理