使用 pt-online-schema-change 添加新列并填充它
Use pt-online-schema-change to add new column and populate it
我需要向现有的 MySQL table 添加一个新列并填充从另一列计算的值。
有没有办法使用 pt-online-schema-change
来做到这一点?
谢谢
pt-online-schema 更改 运行s ALTER TABLE
语句,而不是 UPDATE
语句。如果您需要填充列,您有两个选择:
添加具有 pt-online-schema 更改的列。然后在完成之后,使用 UPDATE 用数据填充列。建议分批进行更新。例如,我 运行 一次在 1000 行上,并重复该操作,直到 UPDATE 报告您更改了 0 行。
UPDATE mytable SET mynewcolumn = <expr>
WHERE mynewcolumn IS NULL LIMIT 1000;
如果您使用 MySQL 5.7 或更高版本,请将列定义为 GENERATED column.
我需要向现有的 MySQL table 添加一个新列并填充从另一列计算的值。
有没有办法使用 pt-online-schema-change
来做到这一点?
谢谢
pt-online-schema 更改 运行s ALTER TABLE
语句,而不是 UPDATE
语句。如果您需要填充列,您有两个选择:
添加具有 pt-online-schema 更改的列。然后在完成之后,使用 UPDATE 用数据填充列。建议分批进行更新。例如,我 运行 一次在 1000 行上,并重复该操作,直到 UPDATE 报告您更改了 0 行。
UPDATE mytable SET mynewcolumn = <expr> WHERE mynewcolumn IS NULL LIMIT 1000;
如果您使用 MySQL 5.7 或更高版本,请将列定义为 GENERATED column.