解决大数据导出CSV,消耗内存过大问题
public function Export() {
set_time_limit(0);
ini_set('memory_limit', '2048M');
$db = Common_Common::getAdapter ();
$filename = date('ymdHis');
ob_end_clean();//清除缓冲区,避免乱码
header ( "Content-type:application/vnd.ms-excel" );
header("Content-Disposition: attachment; filename=\"" . $filename . ".csv\"");
// 打开PHP文件句柄,php://output 表示直接输出到浏览器
$fp = fopen('php://output', 'a');
$params = $this->_request->getParams();
//基础数据
$sql = "SELECT
TYPE
FROM
receiving_detail_cost
LEFT JOIN receiving ON receiving.receiving_id=receiving_detail_cost.receiving_id
LEFT JOIN product ON product.product_id=receiving_detail_cost.product_id
WHERE 1";
//统计查询导出数据数量
$countSql = Process_HistoryDataSplit::sqlFormat(str_replace('TYPE', 'count(*)', $sql), 'warehouse_cost');
$count = $db->fetchOne($countSql);
if(empty($count)){
解决大数据导出CSV,消耗内存过大问题
最新推荐文章于 2023-02-26 10:36:20 发布
这篇博客介绍了一个解决大数据导出为CSV文件时内存消耗过大的问题。通过设置PHP的超时时间和内存限制,以及使用分页查询和逐条写入CSV的方式来减少内存占用。文章详细展示了如何编写代码实现这个过程。
摘要由CSDN通过智能技术生成