当前位置:  开发笔记 > 后端 > 正文

加速mysql转储和导入

如何解决《加速mysql转储和导入》经验,为你挑选了4个好方法。

是否有任何加速mySQL转储和导入的文档化技术?

这将包括my.cnf设置,使用ramdisks等.

仅查看记录的技术,最好使用基准显示潜在的加速.



1> JBB..:

    获取高性能MySQL的副本.好书.

    转储中的扩展插入

    转储--tab格式,这样你就可以使用mysqlimport,它比mysql

    导入多个线程,每个表一个.

    如果可能,请使用其他数据库引擎.导入像innodb这样的重度事务引擎非常慢.插入像MyISAM这样的非事务性引擎要快得多.

    查看Maakit工具包中的表比较脚本,看看是否可以更新表而不是转储它们并导入它们.但你可能正在讨论备份/恢复.



2> Alister Bulm..:

http://www.maatkit.org/有一个mk-parallel-dump和mk-parallel-restore

如果您一直希望使用多线程mysqldump,请不要再希望了.此工具并行转储MySQL表.它是一个更聪明的mysqldump,既可以作为mysqldump的包装器(具有合理的默认行为),也可以作为SELECT INTO OUTFILE的包装器.它专为非常大的数据大小的高性能应用而设计,速度非常重要.它利用多个CPU和磁盘来更快地转储数据.

mysqldump中还有各种可能的选项,例如在导入转储时不创建索引 - 而是在完成时将它们包含在内.


根据mk-parallel-dump手册页(http://www.maatkit.org/doc/mk-parallel-dump.html),它不应该用于备份.谨防!
Maatkit现在是Percona Toolkit的一部分(https://launchpad.net/percona-toolkit)
percona-toolkit中命令的名称是什么?

3> Aleksandar I..:

如果您要导入InnoDB,那么您可以做的最有效的事情就是放置

innodb_flush_log_at_trx_commit = 2

在你的my.cnf,暂时导入运行时.1如果你需要ACID,你可以把它放回去.



4> Ztyx..:

我想你的问题还取决于瓶颈在哪里:

如果你的网络是一个瓶颈,你也可以看一下-C/ --compressflag mysqldump.

如果您的计算机内存不足(即开始交换),您应该购买更多内存.

另外,看一下--quick标志mysqldump(--disable-keys如果你使用的是MyIsam).

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有