簡體   English   中英

PhpMyAdmin數據導入性能問題

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

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