[英]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
使用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.