Seit MySQL 5.6 die Online-DDL eingeführt hat, kann der ALTER TABLEBefehl wahlweise eine ALGORITHM=INPLACEoder ALGORITHM=COPYmehrere Angaben enthalten. Die Übersicht über die Online - DDL stellt fest , dass in der Standardeinstellung INPLACEist , wo immer möglich verwendet und impliziert (ohne jemals ganz besagt es) , dass der INPLACEAlgorithmus ist billiger als das COPYist.
Welchen Grund müsste ich also jemals in ALGORITHM=COPYeiner ALTER TABLEErklärung angeben ?
OPTIMIZE TABLE(was meiner Meinung nach einen großen Teil des Zwecks der Defragmentierung von Indizes ALGORITHM=INPLACEausmacht ) 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=INPLACETabellen mit temporären Spalten (DATE, DATETIME oder TIMESTAMP) und wurden nicht ALTER TABLE ... ALGORITHM=COPY" ... mit den Einschränkungen von Online DDL