Sejak MySQL 5.6 memperkenalkan DDL online, ALTER TABLEperintah opsional dapat memiliki ALGORITHM=INPLACEatau ALGORITHM=COPYditentukan. The gambaran DDL secara online catatan bahwa, secara default, INPLACEyang digunakan sedapat mungkin, dan menyiratkan (tanpa pernah cukup yang menyatakan itu) bahwa INPLACEalgoritma lebih murah daripada COPYsatu.
Jadi alasan apa yang harus saya tentukan ALGORITHM=COPYpada ALTER TABLEpernyataan?
OPTIMIZE TABLE(yang saya percaya memiliki defragging indeks sebagai bagian besar dari tujuannya ) menggunakan ALGORITHM=INPLACEMySQL 5.7.4. Jadi saya pikir itu adalah kasus yang, ya, COPY melakukan defrag indeks, tetapi demikian jugaINPLACE (entah bagaimana), membatalkannya sebagai potensi keuntungan COPY.
ALTER TABLE ... ALGORITHM=INPLACEuntuk tabel yang menyertakan kolom temporal (DATE, DATETIME atau TIMESTAMP) dan belum dibangun kembali menggunakan ALTER TABLE ... ALGORITHM=COPY" ... Keterbatasan DDL Online