2012-05-10 2 views
0

저는 꽤 오랫동안이 문제에 대해 논쟁을 벌였습니다. 서버에서 15 일간 최대 값을 갖는 6 개의 테이블에서 최대 5 개의 데이터를 가져 오는 간단한 PHP 스크립트를 실행하고 있습니다. 각 열 20자를 넘지 않는 열. 그러나 어떤 이유로 스크립트가 실행될 때마다 서버가 560MB의 RAM을 사용한다고보고합니다. 우리 주인은 어떤 책임도 부인 했으므로 나는 의심의 이익을주고 내 꼬리를 쫓아 내 잘못을 시도하고 있습니다. 이 스크립트에 대한 제안이나 재확인은 크게 감사하겠습니다.기본 PHP 스크립트를 사용하여 서버 메모리 최대화

<?php 
$json = file_get_contents('php://input'); 
$data = json_decode($json); 
require_once('xxx'); 

$date = ""; 

if ($data === null) { 
    echo 'Invalid Access'; 
} else { 
    foreach ($data as $date) { 
    } 
    $tables = array('Seizures', 'medlist', 'Output', 'Feeds', 'HydKeto', 'MedLogs'); 
    global $dbc; 
    $rows = array(); 

    foreach ($tables as $table) { 
     if ($table != 'medlist') { 
      $query = "SELECT * FROM $table WHERE timestamp > '$date'"; 
     } else { 
      $query = "SELECT * FROM $table WHERE status!='dc'"; 
     } 
     $sth = mysqli_query($dbc, $query); 
     if ($sth != null) { 
      while($r = mysqli_fetch_assoc($sth)) { 
       $rows[$table][] = $r; 
      } 
     } 
    mysqli_free_result($sth); 
    } 
    echo json_encode($rows); 
} 
?> 
+0

이 스크립트 다음에 $ 행에있는 데이터의 양은 얼마입니까? 추신 : 당신은 하나의 쿼리에서'UNION'을 사용하여 그렇게 할 수 있습니다 – zerkms

+0

SQL 삽입 가능성을 봅니다. 너는 할수 있니? – spender

+0

'php : // input'에서 무엇을 가져 왔습니까? –

답변

0

이것은 밝혀졌지만 정확하게 메모리를 기록하지 않습니다. 나의 호스트는 마침내 그것을 인정했고, 3 개월 동안 나의 머리를 벽에 치고 난 후에 그것을 고쳤다.

관련 문제