Answers:
可能会使进程变慢的一件事是key_buffer_size,它是用于索引块的缓冲区的大小。将其调整到至少RAM的30%,否则重新索引过程可能太慢。
作为参考,如果您使用的是InnoDB和外键,则还可以禁用外键检查并在最后将其重新启用(使用SET FOREIGN_KEY_CHECKS=0
和SET FOREIGN_KEY_CHECKS=1
)。
此链接显示了可以采取哪些措施来加快恢复过程。
http://dev.mysql.com/doc/refman/5.5/en/optimizing-innodb-bulk-data-loading.html
可以将命令放在转储文件的顶部
SET @OLD_AUTOCOMMIT=@@AUTOCOMMIT, AUTOCOMMIT = 0;
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS = 0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS = 0;
并将这些语句放在转储文件的末尾
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
SET AUTOCOMMIT = @OLD_AUTOCOMMIT;
COMMIT;
这对我有用。恢复愉快:-)
cat pre.sql dump.sql post.sql | mysql ...