在 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.
完成的相同碎片整理
我在 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.
完成的相同碎片整理