2017-06-14 86 views
1

即时通讯正在运行一个查询,从一个.CSV文件导入500k记录到一个表中。 该查询运行1小时15分钟,我认为正在花费很多时间来做到这一点。 我期待约10,20分钟。 我已经做了35k的插入查询,大约需要30秒。 有没有加快这个过程的方法?MySQL - 插入500K记录

我打电话的语句是波纹管的一个:

LOAD DATA LOCAL INFILE 'c:/users/migue/documents/www/mc-cron/excels/BD_YP_vFinal_2.csv' INTO TABLE leads FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\n';

感谢。

+0

希望您已经阅读了这一点:https://stackoverflow.com/questions/2463602/mysql-load-data-infile-acceleration –

+0

另见https://dbahire.com/testing-the-fastest三通对进口A-表到MySQL的,和一些-有趣-5-7性能结果/ – mikep

回答

0

将行导入数据库的速度主要取决于数据库的结构,而不取决于导入的数据或用于启动导入的特定命令。因此,向我们展示创建leads表的CREATE TABLE声明将更有用,而不是向我们显示您的LOAD DATA命令。

快速插入一些建议:

  1. 尝试在桌子上禁用任何和所有的约束,并重新启用他们算账。
    • 这包括唯一约束,外键,所有内容。
  2. 尝试导入之前丢弃任何触发器,一旦导入完成:
    • 把触发回
    • 手动执行,如果他们在导入过程中表现活跃的触发器会执行的操作
  3. 尝试下探所有指标导入之前,(是的,这也包括主键索引),并重新-C一旦进口完成就重新制作它们。