5.6以后新增了online-DDL功能,但是好像用的人不多,感兴趣可以研究下。目前来说普遍的方案还是采用percona的pt-online-schema-change>
Download Percona Toolkit

在 MySQL 中, modify 和 alter 都是用于修改表结构的命令,但它们的使用方式和功能略有不同。
modify 命令用于修改表中的现有列。它可以修改列的数据类型、默认值、是否允许为空等属性。例如,以下命令将表 employees 中的 name 列的数据类型从 varchar(50) 改为 varchar(100) :
alter 命令用于对表进行更复杂的修改,例如添加、删除、修改列,重命名表,添加和删除索引等。例如,以下命令将在表 employees 中添加一个新列 age :
以下命令将删除表 employees 中的 age 列:
以下命令将重命名表 employees 为 employees2 :
总之, modify 命令主要用于修改表中现有列的属性,而 alter 命令可以对表进行更复杂的修改,包括添加、删除、修改列,重命名表,添加和删除索引等。在使用这些命令时,请确保仔细阅读 MySQL 的文档以了解具体的语法和用法。
1. 所属能力大小不同 :
modify:只能用于修改字段的属性
例如:把age字段变为非空(针对persons表中的age这一个字段进行修改)
alter:除了修改字段属性外,还可以做增加删除操作。