缓慢导入大型MySQL转储

时间:2011-07-28 17:21:45

标签: mysql mysqldump

我正在尝试将一个非常大的MySQL转储文件导入到新的MySQL服务器中。然而,在某一点之后,它似乎陷入了困境。我大约有250M行,并且甚至需要10-12秒来运行转储的单行。它似乎挂在“更新”。

我是否遗漏了一些我应该做的事情,以使此导入更快?这是一个非常强大的服务器,所以我不认为这是I / O ..

2 个答案:

答案 0 :(得分:1)

如果您确定您的数据是正确的,请尝试禁用外国检查,以便加快流程:

SET @@FOREIGN_KEY_CHECKS = 0;

答案 1 :(得分:0)

对于我来说,使用'强壮'服务器似乎对我有用,将文件分成几个较小的并将它们全部并行导入。可能会破坏行排序的Altough。 (结果可能因存储引擎而异)

IIRC有一些脚本可以做到这一点,但它没有维护。因此,当我搞乱时,我只使用头/尾和管道。

如果要插入多个表而不使用外键,我可能会为您提供一个简单的perl脚本,用于将一个大转储拆分为每个表转储,然后可以并行导入。

this也可能有所帮助。手动完成(在开始时插入禁用并在转储文件末尾启用)或转储数据库时。这样可以加快插入速度,但构建索引需要相当长的时间。