簡體   English   中英

如何更快地將CSV文件上傳到MySQL數據庫

[英]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

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

使用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.

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