我试图从 MySQL 表中获取数百万行到 PHP 我的应用程序。
获取数据的步骤如下。
使用 mysql_query() 或 mysqli_query() 向 mySQL 发送查询。
使用 mysql_fetch_array() 将结果设置为数组并循环每行。或使用 mysqli_fetch_all() 添加数组。
我收到了“内存不足”或“允许的内存大小为 * 字节已用尽”的消息。
如果我更改 'memory_limit' ,我可能能够解决它们。
但我想知道为什么显示这些消息。
我已将“memory_limit”更改为 128M-> 512M ->1024M。
当我设置 128M 时,发送查询失败,允许的内存大小为 *bytes 耗尽,我无法将结果添加到数组区域。
然后设置512M,查询成功完成,但我无法将结果添加到数组,允许的内存大小为*字节耗尽。
最后设置 1024M,发送查询和设置结果以将结果添加到数组都已完成。但有时 mysqli_fetch_all() 是内存不足的字段。
我无法理解的一件事是为什么内存不足不会经常发生?
我想知道的另一件事是如何将超过一百万行的整行从表中转换为 PHP 更少的内存转换。在获得整行后,我想让我的用户通过浏览器操作访问它们,包括下载某些类型的文件,如 csv。