我正在讀取包含1000行的csv文件。我執行一個查詢的每一行,這裏是查詢:PHP腳本超時時間太長
$foobar =
SELECT foo1.ID
FROM foo1
INNER JOIN foo2 ON foo2.ID = foo1.ID
LEFT JOIN foo3 bar1 ON bar1.ID = foo1.ID
LEFT JOIN foo3 bar2 ON bar2.ID = foo1.ID
WHERE foo1.Text LIKE :txt
AND foo2.col1 = 31 AND bar1.col1 = 138 AND bar2.col1 = 271
AND (bar1.col2 = "" OR bar1.col2 IS NULL)
AND (bar2.col2 = "" OR bar2.col2 IS NULL)
跑這個解釋和被搜查只有100行並不斷裁判這意味着它要快,它使用指標返回。
現在,在我的循環,我有以下幾點:
while ($line = fgetcsv($handle)){
$foobar->execute();
$data = $foobar->fetchAll(\PDO::FETCH_ASSOC);
var_dump($data); echo '<br /><br />';
}
爲什麼它需要很長時間? CSV文件中只有1000行,並且在查詢上運行解釋似乎足夠快。
它喜歡5-10分鐘後超時,但它不應該花那麼長時間我不知道最新的問題。
有一點需要注意foo3表包含萬條記錄。
嗯......它運行緩慢,因爲你發出了對數據庫的1,000個查詢? – 2013-03-07 15:33:12
好想,但1000分鐘10分鐘? – Jonast92 2013-03-07 15:40:48