Имеет ли смысл оптимизировать таблицу после изменения столбца удаления таблицы? - PullRequest
0 голосов
/ 20 марта 2020

Я опустил столбец name в таблице employees. Если я запускаю OPTIMIZE TABLE employees, уменьшит ли это использование пространства?

Мои мысли:

В документации сказано, что optimize table равно alter table для InnoDB (если я прочитал это https://dev.mysql.com/doc/refman/8.0/en/optimize-table.html#optimize -table-innodb-details правильно).

Кроме того, alter table drop column изменяет структуру строк в таблице, поэтому следует переписать все строки. Здесь, как я полагаю, происходит оптимизация.

1 Ответ

1 голос
/ 22 марта 2020

ОПТИМИЗАЦИЯ TABLE в таблице InnoDB не требуется после запуска любого ALTER TABLE, который изменяет размер строки.

ALTER TABLE копирует строки в новое табличное пространство и перестраивает индексы. Это выполнит sh ту же самую дефрагментацию, которую вы надеялись сделать с OPTIMIZE TABLE.

...