Da quando MySQL 5.6 ha introdotto DDL online, il ALTER TABLEcomando può facoltativamente avere uno ALGORITHM=INPLACEo ALGORITHM=COPYspecificato. La panoramica del DDL online osserva che, per impostazione predefinita, INPLACEviene utilizzato ovunque sia possibile e implica (senza mai affermarlo) che l' INPLACEalgoritmo è più economico di COPYquello che è.
Quindi quale motivo dovrei mai specificare ALGORITHM=COPYin una ALTER TABLEdichiarazione?
OPTIMIZE TABLE(che credo abbia deframmentare gli indici come gran parte del suo scopo ) utilizza ALGORITHM=INPLACEda MySQL 5.7.4. Quindi penso che sia il caso che, sì, COPY fa gli indici di deframmentazione, ma così faINPLACE (in qualche modo), annullando come un potenziale vantaggio di COPY.
ALTER TABLE ... ALGORITHM=INPLACEtabelle che includono colonne temporali (DATE, DATETIME o TIMESTAMP) e non sono state ricostruite utilizzando ALTER TABLE ... ALGORITHM=COPY" ... Limitazioni del DDL online