Seit MySQL 5.6 die Online-DDL eingeführt hat, kann der ALTER TABLE
Befehl wahlweise eine ALGORITHM=INPLACE
oder ALGORITHM=COPY
mehrere Angaben enthalten. Die Übersicht über die Online - DDL stellt fest , dass in der Standardeinstellung INPLACE
ist , wo immer möglich verwendet und impliziert (ohne jemals ganz besagt es) , dass der INPLACE
Algorithmus ist billiger als das COPY
ist.
Welchen Grund müsste ich also jemals in ALGORITHM=COPY
einer ALTER TABLE
Erklärung angeben ?
OPTIMIZE TABLE
(was meiner Meinung nach einen großen Teil des Zwecks der Defragmentierung von Indizes ALGORITHM=INPLACE
ausmacht ) verwendet wird. Deshalb denke ich , ist es der Fall , dass, ja, COPY
tut defrag Indizes, aber so tutINPLACE
(irgendwie), es als potentieller Vorteil zunichte gemacht COPY
.
ALTER TABLE ... ALGORITHM=INPLACE
Tabellen mit temporären Spalten (DATE, DATETIME oder TIMESTAMP) und wurden nicht ALTER TABLE ... ALGORITHM=COPY
" ... mit den Einschränkungen von Online DDL