导入大型MySQL文件而不会复制滞后

时间:2016-06-11 16:46:59

标签: mysql database-replication master-slave

我要在命令行上导入一个5 GB的表:

mysql -u dbuser -p customersdb < transactions.sql

之前我导入了一个2GB的文件,导致复制滞后很长一段时间。反正有没有避免这里?不知怎的,在每几千次进口后添加超时在我看来似乎是理想的。

我已经尝试使用Google搜索,但似乎并不常见这个用例。

编辑:此外,是否还有监控导入的进度?

1 个答案:

答案 0 :(得分:1)

导致延迟的问题是从属线程默认是单线程的。所有操作 - 包括导入操作和其他操作 - 都发生在一个队列中。

从MySQL 5.6开始,您可以通过设置slave_parallel_workers选项在那里使用多线程。使用MySQL 5.6,这将分配来自不同模式的操作,5.7也可以在单个模式中进行并行化。

请参阅https://dev.mysql.com/doc/refman/5.6/en/replication-options-slave.html#sysvar_slave_parallel_workers