2017-04-09 7 views
0

私はテーブルに効率的に挿入したいCSVを含む変数を持っています。これは1日に何度も実行される操作なので、テーブルにCSVを含むMYSQL変数を挿入する

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).";"); 
+0

このコードは編集済みです! –

+0

ありがとう、私は今夜これをテストし、報告する – Jeremy

関連する問題