douna4762 2012-06-05 10:29
浏览 63

分页查询耗尽内存

I want to export a BIG table to CSV, as it was impossible to select all data at once and export, I open a file handle for writing and call this function which takes a query and loops through different pages, I'm calling it with a page size of 20 which is actually small, but after a time of execution (maybe 30 minutes), it leads to this error:

Fatal error: Allowed memory size of 100663296 bytes exhausted (tried to allocate 85 bytes) in /usr/home/www/wp-includes/wp-db.php on line 1402

This is the function, $fichero is the alraedy opened file handle, $pagina_size had a value of 20 in last test:

function sql2csv_streamed($fichero, $sql, $pagina_size=50)
{
    global $wpdb;
    $limite1 = 0;
    $limite2 = $pagina_size-1;

    $sql_pagina = $sql . " limit $limite1,$limite2";
    error_log($sql_pagina);

    // Add all values in the table
    while ($rsSearchResults = $wpdb->get_results($sql_pagina, ARRAY_A))
    {
        foreach ( $rsSearchResults as $res )
        {
            fputcsv ($fichero, $res , ";");
        }
        $limite1 += $pagina_size;
        $limite2 += $pagina_size;

        $sql_pagina = $sql . " limit $limite1,$limite2";
        error_log($sql_pagina);
    }
}

Thank you

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 微信会员卡接入微信支付商户号收款
    • ¥15 如何获取烟草零售终端数据
    • ¥15 数学建模招标中位数问题
    • ¥15 phython路径名过长报错 不知道什么问题
    • ¥15 深度学习中模型转换该怎么实现
    • ¥15 HLs设计手写数字识别程序编译通不过
    • ¥15 Stata外部命令安装问题求帮助!
    • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
    • ¥15 TYPCE母转母,插入认方向
    • ¥15 如何用python向钉钉机器人发送可以放大的图片?