我有一个包含30M行的表和一个我需要创建INDEX的列。最快的方法是什么?我考虑的两个选项是截断表,添加索引,然后将SQL重新导入为csv文件。另一个是ALTER TABLE
声明。
我应该怎样做才能获得最快的表现?
答案 0 :(得分:0)
最快的方法是使用ALTER TABLE。如果您截断,更改并重新导入,则必须在截断运行时等待,然后在重新导入时运行,这将通过构建新索引来添加。只有ALTER才能构建新索引,因此它会跳过截断和导入时间。
但是,对于30M行,构建索引可能需要一些时间并且可能会超时。如果发生这种情况,你需要以某种方式增加超时(我不使用MySQL所以我不能告诉你如何)。如果这不起作用,您可能别无选择,只能进行截断和重新导入路线,希望使用某种批量上传。