我需要使用 LOAD DATA INFILE 将 400 万行数据加载到 MySQL InnoDB 表中,并且想知道是否有我可以调整的服务器配置选项以获得更快的加载。
我花了 15 分钟来加载 200 万行,我认为 LOAD DATA INFILE 的性能令人失望。我的声明看起来像这样
LOAD DATA LOCAL INFILE 'path/file.csv' INTO TABLE table FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 LINES (column1, column2, etc);
尽管 LOAD DATA INFILE 可以针对 InnoDB 工作,但在交换和瓶颈接管之前,InnoDB 有太多方法会达到其极限。
这是 InnoDB 的图示(来自 Percona 首席技术官 Vadim Tkachenko)
瓶颈将通过以下结构
这是我过去的一些帖子,其中我讨论了 LOAD DATA INFILE 与 InnoDB
Feb 06, 2012
: LOAD DATA (400k rows) INFILE 大约需要7分钟,无法杀死“logging Slow query”进程?Jan 11, 2013
:使用 InnoDB 引擎输入几GB后,MySQL LOAD DATA INFILE 速度减慢了 80%Jan 12, 2013
: mysql 分析 LOAD DATA INFILE 语句时“系统锁”是什么意思?将文件分成 20 个较小的文件。
不要LOAD DATA INFILE
对 200 万行文件执行 1 次,而是LOAD DATA INFILE
对 20 个文件执行 20 次,每个文件有 10 万行。
好处:减少 InnoDB 管道的压力
归档时间: |
|
查看次数: |
6520 次 |
最近记录: |