我正在 MacOS 上运行的 16 GB RAM MySQL 上恢复 26GB mysql 转储文件。
首先我尝试像这样恢复mysql备份
mysql -ufoo -pbar foo < foo.dump
Run Code Online (Sandbox Code Playgroud)
这导致 mySQL 崩溃,因为 foo.dump 包含许多非常有趣的国际字符,并且上面的命令没有处理编码。
所以我尝试了
mysql -uroot -p --default-character-set=utf8 foo
mysql> SET names 'utf8'
mysql> SOURCE foo.dump
Run Code Online (Sandbox Code Playgroud)
这很有效,并且恢复过程没有崩溃,因为我猜有趣的国际字符已正确处理。
但现在恢复过程非常缓慢。对于 26 GB 的文件,它会运行一整夜(罪魁祸首是一张拥有 4000 万行的表)。我可以看到它每 15 秒恢复大约 3000 行。但按照这个速度,恢复过程将永远持续下去。
那么有没有一种方法可以快速恢复转储文件而不弄乱编码呢?