[英]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
使用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.