【问题标题】:Does it make sense to optimize the table after alter table drop column?在 alter table drop column 之后优化表是否有意义?
【发布时间】:2020-03-20 06:33:04
【问题描述】:

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

我的想法:

文档说 optimize table 等于 InnoDB 的 alter table(如果我正确阅读了这个 https://dev.mysql.com/doc/refman/8.0/en/optimize-table.html#optimize-table-innodb-details)。

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

【问题讨论】:

    标签: mysql query-optimization innodb


    【解决方案1】:

    在运行任何更改行大小的 ALTER TABLE 后,无需在 InnoDB 表上 OPTIMIZE TABLE。

    ALTER TABLE 将行复制到新的表空间中,并重建索引。这将完成您希望使用 OPTIMIZE TABLE 进行的相同碎片整理。

    【讨论】:

      猜你喜欢
      • 2018-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-12
      • 2011-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多