ตั้งแต่ MySQL 5.6 แนะนำ DDL ออนไลน์ALTER TABLE
คำสั่งสามารถเลือกที่จะมีALGORITHM=INPLACE
หรือALGORITHM=COPY
ระบุก็ได้ ภาพรวมของ DDL ออนไลน์หมายเหตุที่โดยปกติINPLACE
จะใช้ที่ใดก็ตามที่เป็นไปได้และหมายถึง (โดยที่ไม่เคยระบุว่าค่อนข้าง) ว่าINPLACE
อัลกอริทึมที่มีราคาถูกกว่าCOPY
หนึ่งคือ
ดังนั้นฉันจะต้องระบุเหตุผลอะไรALGORITHM=COPY
ในALTER TABLE
แถลงการณ์?
OPTIMIZE TABLE
(ซึ่งฉันเชื่อว่ามีการจัดเรียงดัชนีเป็นส่วนใหญ่ของวัตถุประสงค์ ) ใช้ALGORITHM=INPLACE
เป็นของ MySQL 5.7.4 ดังนั้นผมจึงคิดว่ามันเป็นกรณีที่ใช่COPY
ไม่ดัชนีการ defrag แต่เพื่อไม่INPLACE
(อย่างใด) nullifying COPY
ว่ามันเป็นข้อได้เปรียบที่มีศักยภาพของ
ALTER TABLE ... ALGORITHM=INPLACE
ตารางที่มีคอลัมน์ชั่วคราว (DATE, DATETIME หรือ TIMESTAMP) และยังไม่ได้ถูกสร้างใหม่โดยใช้ALTER TABLE ... ALGORITHM=COPY
" ... ข้อ จำกัด ของ Online DDL