![批量 CSV 导入的最佳设置](https://linux22.com/image/621214/%E6%89%B9%E9%87%8F%20CSV%20%E5%AF%BC%E5%85%A5%E7%9A%84%E6%9C%80%E4%BD%B3%E8%AE%BE%E7%BD%AE.png)
我们目前正在运行一个 Wordpress 网站,但每天需要从 CSV 文件导入 10,000 - 20,000 篇帖子。我们当前的设置是一台一体式 LAMP 服务器,配备 8GB RAM 和 8 个虚拟核心。导入速度相当慢,需要几个小时。
我的问题是,将 MySQL 服务器与 LAMP 服务器分离是否会提高导入速度?我们的网站在导入过程中运行速度不会变慢或停滞,我们只是想提高导入速度。
谢谢
答案1
- 使用的是哪种表引擎?如果是 InnoDB,请尝试增加双写缓冲区的大小,并导入{更少、单个}事务(和/或设置
innodb_flush_log_at_trx_commit
为 1 以外的值)。如果不是 InnoDB,请切换!并设置适当的innodb_buffer_pool_size
。 - 考虑重新格式化数据以便能够使用 MySQL 的内置功能
LOAD DATA INFILE
,与批量处理相比,它的速度非常快INSERT
。 INSERT
如果可能的话,请使用扩展插入语法,而不是逐行插入。
一旦完成所有这些(或至少考虑并出于充分理由而拒绝),您可能会受到实际机器参数的瓶颈,而不是可以通过 MySQL 调整解决的问题。此时,转移到单独的机器上是有意义的。更早地进行这一转变可能会产生问题(例如由于网络延迟),也可能解决问题。