繁体   English   中英

从Mysql导出大量数据(20000行)到excel(用Php)

[英]Export large amount of data (20000 rows) from Mysql to excel (with Php)

我想从Mysql 导出大量数据(20000行)到excel(用PHP)数据来自两个表。 第一个表的每个记录都具有第二个表记录的ID。 我正在使用PHPExcel Library。

伪代码:

$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屏幕变成空白(白色)......我认为这是执行超时问题...

任何解决方案

恕我直言20k行不是那么大。 如何利用JOIN并在一次往返MySql中获得完整的结果集

SELECT t1.*, t2.*
  FROM table1 t1 JOIN table2 t2
    ON t1.store_id = t2.store_id

优化查询的选择部分,以便只返回您真正需要的列。

从您的问题中不清楚,但如果您只需要导出以后可以在Excel中打开的数据而不是构建花哨的报告,那么您可以使用INTO OUTFILE子句非常快速地生成CSV文件

SELECT t1.*, t2.*
  INTO OUTFILE '/tmp/tablename.csv'
       FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
       LINES TERMINATED BY '\n'
  FROM table1 t1 JOIN table2 t2
    ON t1.store_id = t2.store_id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM