我有一个包含CSV的变量,我希望以有效的方式将其插入到表中,因为这是一个将每天执行多次的操作。
CSV_To_Be_Inserted = "Y101, E103, I710, U809" (this list will be closer to 100 values each time)
我只想插入表中尚未存在的值。我在PHP中尝试使用一个循环,为每个调用一个insert语句,大约需要17秒。
我也尝试将整个CSV变量传递给MYSQL并循环遍历MYSQL中的值,花了15秒。
有关如何在4或5秒内完成此任务的任何想法?
答案 0 :(得分:0)
您必须使用组插入来提高mysql查询的性能!
<?php
$CSV_To_Be_Inserted = '....';
$csv = explode("\n",$CSV_To_Be_Inserted); //Split every Line
$values = [];
foreach($csv as $record){
$rec = "'".str_replace(", ","', '",$record)."'"; //add ' on columns
$values[]=' ('.$rec.' )';
}
$mysql->query("INSERT INTO TABLE VALUES ".implode(',',$values).";");