自从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
确实碎片整理的索引,但这样做INPLACE
(在某种程度上),抵消它的潜在优势COPY
。
ALTER TABLE ... ALGORITHM=INPLACE
包含时态列(DATE,DATETIME或TIMESTAMP)且尚未使用以下方式重建的表ALTER TABLE ... ALGORITHM=COPY
:... 在线DDL的局限性