Php 将大型数据从Mysql加载到阵列中的最佳方法
我试图将大量数据从Mysql加载到阵列,但我们的服务器内存限制太低,无法实现。我可以增加这个限制,但我想这不是解决办法。我需要更好的解决办法。。某种类型的循环或什么 我的实际代码: 使用mysql\u unbuffered\u query()将改善我的情况,但一点也没有 实际上我正在加载大约1000行 更新Php 将大型数据从Mysql加载到阵列中的最佳方法,php,mysql,Php,Mysql,我试图将大量数据从Mysql加载到阵列,但我们的服务器内存限制太低,无法实现。我可以增加这个限制,但我想这不是解决办法。我需要更好的解决办法。。某种类型的循环或什么 我的实际代码: 使用mysql\u unbuffered\u query()将改善我的情况,但一点也没有 实际上我正在加载大约1000行 更新 我在服务器上设置了128 mb内存。因此,如果我尝试获取21mb数据,它将失败…如果可以,您应该这样做。它们不再得到维护,而是在使用。相反,请学习使用PDO,为什么要创建一个数组来保存这些数
我在服务器上设置了128 mb内存。因此,如果我尝试获取21mb数据,它将失败…如果可以,您应该这样做。它们不再得到维护,而是在使用。相反,请学习使用PDO,为什么要创建一个数组来保存这些数据,您不能只运行将要使用这些数据来代替数组加载代码的代码吗?您的内存限制设置为什么?1000行不是一个大数字!我有128M内存限制。我正在创建一个数组,因为下一次我使用json_encode($response);将查询更改为
SELECT`code`,`name` FROM$table
,只获取所需数据,而不是多个不必要的列。如果可以,您应该。它们不再得到维护,而是在使用。相反,请学习使用PDO,为什么要创建一个数组来保存这些数据,您不能只运行将要使用这些数据来代替数组加载代码的代码吗?您的内存限制设置为什么?1000行不是一个大数字!我有128M内存限制。我正在创建一个数组,因为下一次我使用json_encode($response);如果您将查询更改为SELECT`code`,`name` FROM$table
,只获取所需数据,而不是多个不必要的列,则还可以减少内存需求。
$sql = "SELECT * FROM $tables";
$response = array();
$result = mysql_unbuffered_query( $sql );
while( $row=mysql_fetch_array( $result ))
{
$response[] = (
array(
"id" => $row['code'],
"name" => $row['name']
)
);
}
$sql = "SELECT 'code','name' FROM $tables";
$response = array();
$result = $this->con->prepare($sql);
echo self::convert(memory_get_usage(true)); // 512kb
$result->execute();
echo self::convert(memory_get_usage(true)); // 21.25 mb
$array = $result->fetchAll();
// here script fails -> due to out of memory
foreach($array as $key => $row) {
$response[] = (
array(
"id" => $row['code'],
"name" => $row['name']
)
);