gpt4 book ai didi

php - 大型 SQL 结果集占用太多内存 - CodeIgniter

转载 作者:行者123 更新时间:2023-11-29 04:53:41 25 4
gpt4 key购买 nike

我正在使用 CodeIgniter 发出 SQL 查询,它可以返回超过 80,000 行的结果。每行有三列,都是整数,我收到一个 PHP 错误: fatal error :允许的 134217728 字节内存大小已耗尽

看来我正在尝试使用超过 128MB 从 MySQL 服务器检索结果。我正在使用 $query->result_array() 来检索结果。在我得到的结果中,空间方面显然存在严重的开销。假设我检索了 100,000 行,其中包含 3 个整数。所以 100,000*((3*4 + 10)= 2.1MB。(10 是用于列 ID 等的字节数)。

我做错了什么吗?

--------------------已解决--------------------

通过修改CodeIgniter代码解决:link .

现在执行速度更快,脚本仅占用约 3MB 的内存,而不是超过 128MB。

最佳答案

我不确定 CI 返回结果的确切方式,但您绝对不希望整个数据集在一个数组中。为什么不根据需要遍历每一行?

<?php

$result = $this->db->query('SELECT ...');
while($row = $result->next_row())
{
// do something with that single row
}

关于php - 大型 SQL 结果集占用太多内存 - CodeIgniter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8811859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com