缓慢的Mysql导入

我导入一个数据库,当我运行mytop我看到只有一个线程运行插入。 在80G的大型数据库上需要花费大量的时间,是否有任何工具或可能是增加线程数的选项?

并行转储/加载的最佳select是mydumper 。 这是由知道他们的东西的人写的。

这是无关紧要的,顺便说一句,innotop是比mytop更强大的工具。

您可以尝试Maatkit并行转储和恢复工具。

Maatkit工具被卷入了Percona工具包,但我无法在文档中find这两个工具。

根据您的磁盘configuration情况,您可能看不到速度的提高。 有些人看到了一些重大的改进 。

您可以尝试将my.cnf中的key_buffer_sizevariables的值增加到可用RAM的20-25%。 它通常设置得相当低,增加它将允许更快的import/转储价格。 更多信息: http : //www.notesbit.com/index.php/web-mysql/mysql/mysql-tuning-optimizing-my-cnf-file/

我有限的知识不包括multithreading,所以我不能帮你。

从其他数据库,特别是MySql,我知道,如果您在导入之前删除索引,然后重新创build索引,它可以提高速度。

当然,这主要取决于两个问题:导入数据库时​​可以使数据库脱机,而且您试图导入的数据certificate不违反索引所保证的限制。

插入和更新触发器和存储过程可能起到类似的作用。

你也可以rsync你的/ var / lib / mysql文件夹到任何其他机器。 最好的情况是,如果你有一个奴隶运行。 这一个你可以停止并closuresMySQL服务。 这样/ var / lib / mysql下的文件将不会被改变。

rsync -avhzr ssh user@yourmachine:/var/lib/mysql . 

这样,我可以在20分钟内导入我的40G数据库,这取决于您的互联网带宽。