使用多个修改列的“Alter table”与使用单个列的“Alter table”查询的区别

4
我有一个拥有100万条记录的巨大表格,我想将其中一些文本列修改为varchar列。哪种修改列的方式最好呢?
  1. 使用包含所有修改列的Alter table查询
  2. 使用单个修改列的Alter table查询

建议使用第二种方法,因为它可以避免在执行修改时对整个表格进行锁定,从而提高修改效率。
1个回答

7
肯定是变体1,因为正如在MySQL文档中所述,在大多数情况下,ALTER TABLE会创建原始表的临时副本。MySQL等待正在修改表的其他操作,然后继续进行。它将改动合并到副本中,删除原始表并重命名新表。因此,最好只进行一次复制/等待操作/删除旧表/重命名新表操作,而不是多次操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接