【发布时间】:2010-09-09 04:31:45
【问题描述】:
是否有任何记录在案的技术可以加快 mySQL 转储和导入?
这将包括 my.cnf 设置、使用 ramdisk 等。
只寻找记录在案的技术,最好有显示潜在加速的基准。
【问题讨论】:
是否有任何记录在案的技术可以加快 mySQL 转储和导入?
这将包括 my.cnf 设置、使用 ramdisk 等。
只寻找记录在案的技术,最好有显示潜在加速的基准。
【问题讨论】:
在转储中使用扩展插入应该可以加快导入速度。
【讨论】:
【讨论】:
关闭外键检查并打开自动提交。
【讨论】:
如果您要导入 InnoDB,您可以做的最有效的事情就是放入
innodb_flush_log_at_trx_commit = 2
在您的 my.cnf 中,暂时在导入运行时。如果需要 ACID,可以回1。
【讨论】:
0 会不会更快?
key_buffer_size 有帮助(达到可用内存的 30%)。
http://www.maatkit.org/ 有一个 mk-parallel-dump 和 mk-parallel-restore
如果您一直希望使用多线程 mysqldump,请不要再希望了。该工具并行转储 MySQL 表。它是一个更智能的 mysqldump,既可以作为 mysqldump 的包装器(具有合理的默认行为),也可以作为 SELECT INTO OUTFILE 的包装器。它专为处理非常大数据量的高性能应用程序而设计,在这些应用程序中,速度非常重要。它利用多个 CPU 和磁盘来更快地转储数据。
在 mysqldump 中还有各种潜在的选项,例如在导入转储时不创建索引 - 而是在完成时整体进行。
【讨论】:
我猜你的问题也取决于瓶颈在哪里:
-C/--compress 标志到mysqldump。另外,查看mysqldump 的--quick 标志(如果您使用的是MyIsam,则查看--disable-keys)。
【讨论】:
--disable-keys '仅对 MyISAM 表的非唯一索引有效'。
如果您只有 MyIsam 表,mysqlhotcopy 也可能是您的替代方案。
【讨论】:
使用索引但不要太多,激活查询缓存,使用狮身人面像用于大数据库,这里有一些很好的提示http://www.keedeo.com/media/1857/26-astuces-pour-accelerer-vos-requetes-mysql(法语)
【讨论】:
另一种选择是 http://www.mydumper.org - 多线程 mysql 备份/恢复,比 mysqldump 快 3 到 10 倍,并且可以处理 MyISAM 和 InnoDB 以及 Drizzle http://vbtechsupport.com/1695/
【讨论】: