繁体   English   中英

如何更快地将CSV文件上传到MySQL数据库

[英]How to upload csv file into mysql database faster

我想通过php将csv文件上传到mysql数据库。 我的数据库中已经有20,000多个记录。 现在,当我上传其中包含约1000条记录的csv文件时,需要花费很多时间才能在本地计算机上上传。

请帮助并建议优化查询以将csv文件上传到具有大量记录的mysql数据库中。

记录数是否会影响数据库的性能?

编辑评论

当前使用的代码:

LOAD DATA INFILE '$file_name' IGNORE 
INTO TABLE import 
FIELDS TERMINATED BY '|' 
LINES TERMINATED BY '\n' 
IGNORE 1 LINES (@srno,@customer_name,@date,@mobno,@city,@state,@type,@telecaller) 
SET customer_name=@customer_name,date=@date,mobno=@mobno,city=@city, state=@state,type=@type,telecaller=@telecaller,datetime='$datetime';

mysql的USE命令行工具:LOAD DATA INFILE

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

使用fgetcsv()函数使用php从csv文件加载数据,以所需的方式对其进行格式化,并创建要提交给mysql db的查询。 我已经使用它使用csv文件创建了一个1.5M行的数据库,每个文件中包含超过10000条记录,没有任何问题。 1000条记录应该不是问题。

例:

      $h = fopen("your_file.csv", "r");
      $data = fgetcsv($h, "10000", ",");

您的csv文件中的第一行将在$ data [0]中。 $ data [0] [0]将包含以“,”分隔的第一个单词。 例如:如果您有:“猫,狗,老鼠”,

    $data[0][0] = "cat"
    $data[0][1] = "dog"

等等。既然您在$ data数组中有了记录,就可以用它来制作sql并将它们插入到db中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM