$ res에는 약 488k 행이 포함되어있어 전체 루프에는 61 초가 걸립니다! 1 사이클 당 1.25ms가 넘습니다! 그 시간 동안 무엇을하고 있습니까?mysql 결과 집합의 속도가 느린 이유는 무엇입니까? (사이클 당 1.4ms)
while($row = $res->fetch_assoc())
{
$clist[$row['upload_id']][$row['dialcode_id']][$row['carrier_id']]['std'] = $row['cost_std'];
$clist[$row['upload_id']][$row['dialcode_id']][$row['carrier_id']]['ecn'] = $row['cost_ecn'];
$clist[$row['upload_id']][$row['dialcode_id']][$row['carrier_id']]['wnd'] = $row['cost_wnd'];
$dialcode_destination[$row['upload_id']][$row['carrier_id']][$row['dialcode_id']]['other_destination'] = $row['destination_id'];
$dialcode_destination[$row['upload_id']][$row['carrier_id']][$row['dialcode_id']]['carrier_destination'] = $row['carrier_destination_id'];
}
이제 10 개 행, 더 작은 어레이 및 성능이 30 배 이상 (0.041ms) 빠르지 만 더 나은 결과는 아닙니다.
while($row = $res->fetch_assoc())
{
$customer[$row['id']]['name'] = $row['name'];
$customer[$row['id']]['code'] = $row['customer'];
}
당신이 메모리에 모든 결과를로드해야합니까? –
61 초의 488k 행은 실제로 반복마다 0.125ms이므로 30 초가 아니라 3 배 느립니다. * 길을 너무 오랫동안 보면서 그 숫자가 옳지 않다고 생각하여 확인하기가 어려웠습니다! :) – Chris