内容提要
Percona Toolkit 3.6.0的pt-online-schema-change支持了–where选项,可以在修改表定义的同时只复制满足特定条件的行。使用–where选项可以避免复制所有数据,特别是当表很大且只需要最新数据时。使用–no-drop-new-table和–no-swap-tables选项可以保护原始表中的其他数据。建议不要在可能受到正在进行的查询影响的条件下使用–where选项。
关键要点
-
Percona Toolkit 3.6.0的pt-online-schema-change支持–where选项,可以在修改表定义时只复制满足特定条件的行。
-
使用–where选项可以避免复制所有数据,特别是当表很大且只需要最新数据时。
-
运行pt-online-schema-change时,建议使用–no-drop-new-table和–no-swap-tables选项以保护原始表中的其他数据。
-
在使用–where选项时,建议不要在可能受到正在进行的查询影响的条件下使用。
-
如果使用–where选项与–drop-new-table和–swap-tables一起,可能会导致数据丢失,因此需要使用–force选项来覆盖安全检查。
-
使用–new-table-name选项可以避免手动执行删除和交换表操作,并保留两个表。
-
–where选项对pt-online-schema-change创建的触发器没有影响,建议不要与可能受到正在进行的查询影响的条件一起使用。
延伸问答
pt-online-schema-change的–where选项有什么作用?
–where选项允许在修改表定义时只复制满足特定条件的行,避免复制所有数据。
使用pt-online-schema-change时,如何保护原始表中的数据?
可以使用–no-drop-new-table和–no-swap-tables选项来保护原始表中的数据。
在什么情况下不建议使用–where选项?
不建议在可能受到正在进行的查询影响的条件下使用–where选项。
如果使用–where选项与–drop-new-table和–swap-tables一起会发生什么?
这可能会导致数据丢失,因此需要使用–force选项来覆盖安全检查。
如何避免手动删除和交换表操作?
可以使用–new-table-name选项来避免手动执行删除和交换表操作,并保留两个表。
pt-online-schema-change如何处理触发器?
–where选项对pt-online-schema-change创建的触发器没有影响,建议不要与可能受到正在进行的查询影响的条件一起使用。