我正在读取包含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