MySql中的ALTER TABLE允许使用ALGORITHM=INPLACE来避免在修改期间进行表复制。但默认情况下,它们使用复制而不是原地修改。为什么?默认值用于向后兼容性还是存在一些限制或无法使用原地修改的情况?
P.S. MySql是Percona-Server-server-56.x86_64 5.6.29。
MySql中的ALTER TABLE允许使用ALGORITHM=INPLACE来避免在修改期间进行表复制。但默认情况下,它们使用复制而不是原地修改。为什么?默认值用于向后兼容性还是存在一些限制或无法使用原地修改的情况?
P.S. MySql是Percona-Server-server-56.x86_64 5.6.29。
是的。在许多情况下,您可以使用它。请参见在线DDL操作列表。
如果无法使用INPLACE算法,MySQL会告诉您,然后您可以恢复使用DEFAULT(即:复制)或使用pt-online-schema-change。