MySQL转储和加载时间之间的不合理差异

时间:2010-10-26 09:46:48

标签: mysql load mysqldump

我正在将数据库转储到文件中(通过gzip管道转储),创建300MB dump.sql.gz文件大约需要2分钟。

将文件加载回MySQL时(转储以删除表开始),加载大约需要30分钟!!

造成如此巨大差异的原因是什么?是否有任何关于大幅减少加载时间的一般提示?

感谢。

2 个答案:

答案 0 :(得分:1)

一个原因是写入数据库比阅读数据库更具扩展性。数据库必须确保写入是事务性的,它必须更新索引,扩展文件等等。

另一个原因是MySQL转储了数据的SQL版本,就像大文本文件中的大量insert语句一样。那很慢。来自其他数据库的备份通常是可以通过原始数据库写入的二进制文件,这比一次恢复一行要快。

答案 1 :(得分:0)

除了Andomar的答案之外 - 在转储中添加'--delayed-insert'和'--extended-insert'可以获得显着的改进。