我正在尝试将一个非常大的MySQL转储文件导入到新的MySQL服务器中。然而,在某一点之后,它似乎陷入了困境。我大约有250M行,并且甚至需要10-12秒来运行转储的单行。它似乎挂在“更新”。
我是否遗漏了一些我应该做的事情,以使此导入更快?这是一个非常强大的服务器,所以我不认为这是I / O ..
答案 0 :(得分:1)
如果您确定您的数据是正确的,请尝试禁用外国检查,以便加快流程:
SET @@FOREIGN_KEY_CHECKS = 0;
答案 1 :(得分:0)
对于我来说,使用'强壮'服务器似乎对我有用,将文件分成几个较小的并将它们全部并行导入。可能会破坏行排序的Altough。 (结果可能因存储引擎而异)
IIRC有一些脚本可以做到这一点,但它没有维护。因此,当我搞乱时,我只使用头/尾和管道。如果要插入多个表而不使用外键,我可能会为您提供一个简单的perl脚本,用于将一个大转储拆分为每个表转储,然后可以并行导入。
this也可能有所帮助。手动完成(在开始时插入禁用并在转储文件末尾启用)或转储数据库时。这样可以加快插入速度,但构建索引需要相当长的时间。