mysql 100百万行表-一个小时添加一列?-如何加快速度?

tcbh2hod  于 2022-11-21  发布在  Mysql
关注(0)|答案(3)|浏览(207)

我有一个1亿行的表,添加一列需要几个小时,更不用说运行更复杂的查询了。如何加快速度?
试着运行这个:

Alter Table diablo add NGAGE_URN varchar(100) FIRST;
odopli94

odopli941#

使用pt-online-schema-change或我前面描述的手动方法。

nuypyhwy

nuypyhwy2#

Mysql在添加列时速度慢是出了名的。我见过它在几亿行上花了6个小时。更大的问题是在修改过程中,表被独占锁定,所以在修改过程中你是离线的。
创建一个新表,用旧数据不断填充它。当你几乎是最新的,关闭你的应用程序,复制剩余的行,重命名表,使新表使用旧名称,然后你就可以开始了。停机时间:几分钟。
您将不得不处理在您开始移动数据后发生的更新,因此timestamp或类似命令将在此有所帮助。

lyr7nygr

lyr7nygr3#

创建一个包含该列的新表。将旧表中的所有记录插入其中。删除旧表。将新表重命名为正确的名称。

相关问题