【发布时间】:2013-05-10 22:09:35
【问题描述】:
我想导出大量数据(20000 行)从 Mysql 到 Excel(使用 PHP) 数据来自两个表。 第一个表的每条记录都有第二个表记录的ID。 我正在使用 PHPExcel 库。
伪代码:
$first_table = mysql_query("SELECT * FROM table_1")
foreach($first_table as $row){
$store_id = $row['store_id'];
$second_table = mysql_query("SELECT * FROM table_2 Where ID = $store_id");
}
在这种情况下 mysql 查询运行次数(在第一个表中找到记录) 现在的问题是处理时间太长,最后没有结果php屏幕变成空白(白色)......我认为这是执行超时问题......
有什么办法吗??
【问题讨论】:
-
MySQL(mysql_*函数)扩展名为deprecated。我建议改用MySQLi(mysqli_*函数)或PDO。 -
如果时间不是问题,请查看
set_time_limit()。另外,可能是浏览器问题。 -
添加一些日志信息以了解是否有问题:ìf ($i % 1000 = 0) echo "line %i";\'。我建议在 CLI 中执行您的代码。
-
你真的需要使用PHPExcel吗?也许您可以将其导出为单独的 csv 文件然后使用它们?
-
@peterm 的回答将大大提高速度...检索所有数据的单个数据库查询将比针对数据库逐行检索数据的 20001 个检索查询快很多