[英]PhpMyAdmin data import performance issues
最初,我的問題與PhpMyAdmin的SQL部分無法正常工作有關。 正如評論中所建議的那樣,我意識到輸入的數量是無法處理的。 但是,這並沒有為我提供一個有效的解決方案,如何處理(CSV)格式的文件(在我的情況下 - 35,000條記錄行):
...
20120509,126,1590.6,0
20120509,127,1590.7,1
20120509,129,1590.7,6
...
PhpMyadmin中的Import選項正在苦苦掙扎,正如SQL部分中的基本復制粘貼輸入那樣。 這一次,與之前相同,直到調用最大執行時間需要5分鍾然后停止。 有趣的是,它增加了6-7千條記錄。 這意味着輸入實際上已經完成,並且幾乎成功。 我還嘗試將文件中的數據量減半。 然而,沒有任何改變。
現在顯然有些不對勁。 當簡單數據導入不起作用時,必須使用php腳本中的數據進行播放是非常煩人的。
更改您的PHP上傳最大大小。
你知道你的php.ini文件在哪里嗎?
首先,嘗試將此文件放入您的Web根目錄:
phpinfo.php
(見http://php.net/manual/en/function.phpinfo.php )
含:
<?php
phpinfo();
?>
然后導航到http://www.yoursite.com/phpinfo.php
尋找“php.ini”。
要上傳大文件,您需要max_execution_time,post_max_size,upload_max_filesize
另外,你知道你的error.log文件在哪里嗎? 希望能給你一個關於出了什么問題的線索。
編輯:
這是我用於文件導入的查詢:
$query = "LOAD DATA LOCAL INFILE '$file_name' INTO TABLE `$table_name` FIELDS TERMINATED BY ',' OPTIONALLY
ENCLOSED BY '\"' LINES TERMINATED BY '$nl'";
其中$ file_name是來自php全局變量$ _FILES的臨時文件名,$ table_name是已准備好導入的表,$ nl是csv行結尾的變量(默認為windows行結尾但我有選擇選擇linux行)結局)。
另一件事是我的腳本中的表($ table_name)是事先准備好的,首先掃描csv以確定列類型。 在確定適當的列類型后,它會創建MySQL表以接收數據。
我建議你首先嘗試創建MySQL表定義,以匹配文件中的內容(數據類型,字符長度等)。 然后嘗試上面的查詢,看看它運行的速度有多快。 我不知道MySQL表定義對速度有多大影響。
此外,在加載數據之后,我沒有在表中定義索引。 索引會減慢數據加載速度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.