我想通过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';
答案 0 :(得分:1)
mysql的USE命令行工具:LOAD DATA INFILE
答案 1 :(得分:0)
使用fgetcsv()函数使用php从csv文件加载数据,按照您希望的方式格式化,并创建提交到mysql db的查询。我使用它来创建一个1.5M行的数据库,使用csv文件,每个文件包含超过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数组中有记录,因此可以使用它来生成sqls并将它们插入到db
中