簡體   English   中英

如何循環通過CSV mysql更新更快?

[英]How to loop through CSV mysql update quicker?

我有一個包含26,000行的csv文件,我在其中遍歷行並更新具有250,000+條記錄的表中的記錄(有時是多個)。 此刻,它已經很老了! 我想知道是否有另一種方法可以更快地執行此操作(在代碼或mysql / etc中)

$row = 1;
if (($handle = fopen("zip-codes-database-DELUXE-BUSINESS2.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
            if($row> 1){


                # GET THE AREACODE FROM data 20

                # name is: 21

                $insert = "UPDATE ".TBLPREFIX."cities SET data = '".escape(serialize($data))."' WHERE area_code = ".$data[20]." AND title = '".trim(strtoupper($data[21]))."'";
                mysql_query($insert) or die(mysql_error());
            }
            $row++;
    }
    fclose($handle);
}

基於什么我都可以嘗試:

  1. 通過cmd行將csv放入表格或“在文件中加載數據”
  2. 使用“插入...選擇”將記錄更新到臨時表中,在此將新舊連接在一起
  3. 將臨時表移回原始表(刪除/重命名)

似乎會更快..如果有點笨拙。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM