Da quando MySQL 5.6 ha introdotto DDL online, il ALTER TABLE
comando può facoltativamente avere uno ALGORITHM=INPLACE
o ALGORITHM=COPY
specificato. La panoramica del DDL online osserva che, per impostazione predefinita, INPLACE
viene utilizzato ovunque sia possibile e implica (senza mai affermarlo) che l' INPLACE
algoritmo è più economico di COPY
quello che è.
Quindi quale motivo dovrei mai specificare ALGORITHM=COPY
in una ALTER TABLE
dichiarazione?
OPTIMIZE TABLE
(che credo abbia deframmentare gli indici come gran parte del suo scopo ) utilizza ALGORITHM=INPLACE
da 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=INPLACE
tabelle che includono colonne temporali (DATE, DATETIME o TIMESTAMP) e non sono state ricostruite utilizzando ALTER TABLE ... ALGORITHM=COPY
" ... Limitazioni del DDL online