是否有任何加速mySQL转储和导入的文档化技术?
这将包括my.cnf设置,使用ramdisks等。
仅查看记录的技术,最好使用基准显示潜在的加速。
答案 0 :(得分:24)
答案 1 :(得分:15)
http://www.maatkit.org/有一个mk-parallel-dump和mk-parallel-restore
如果您一直希望使用多线程mysqldump,请不要再希望了。此工具并行转储MySQL表。它是一个更聪明的mysqldump,既可以作为mysqldump的包装器(具有合理的默认行为),也可以作为SELECT INTO OUTFILE的包装器。它专为非常大的数据大小的高性能应用而设计,速度非常重要。它利用多个CPU和磁盘来更快地转储数据。
mysqldump中还有各种可能的选项,例如在导入转储时不创建索引 - 而是在完成时将它们包含在内。
答案 2 :(得分:13)
如果您要导入InnoDB,您可以做的最有效的事情就是放
innodb_flush_log_at_trx_commit = 2
导入正在运行时暂时在my.cnf
中。如果您需要ACID,可以将其放回1
。
答案 3 :(得分:5)
我猜你的问题也取决于瓶颈在哪里:
-C
的{{1}} / --compress
标记。此外,请查看mysqldump
的{{1}}标记(如果您使用的是MyIsam,请查看--quick
)。
答案 4 :(得分:4)
在转储中使用扩展插入应该可以加快导入速度。
答案 5 :(得分:4)
关闭外键检查并开启自动提交。
答案 6 :(得分:1)
mysqlhotcopy
也可能是您的替代选择。
答案 7 :(得分:-2)
使用索引但不要太多,激活查询缓存,使用sphinx作为大数据库,这里有一些很好的提示http://www.keedeo.com/media/1857/26-astuces-pour-accelerer-vos-requetes-mysql(法语)
答案 8 :(得分:-2)
另一种选择是http://www.mydumper.org - 多线程mysql备份/恢复,比mysqldump快3到10倍,可以处理MyISAM和InnoDB以及Drizzle http://vbtechsupport.com/1695/