2014-01-19 4 views
-1

안녕하세요 데이터베이스 쿼리가 매우 느립니다. html 테이블에 4000 행을 나열하는 데 5 분 ... 도와주세요.함수를 사용하여 데이터베이스 쿼리 속도 향상

  **$query = "SELECT * FROM tblRazduzeniUgovori WHERE Status='razduzen'";** 
     if ($result = mysqli_query($con, $query)) { 
      while($row = mysqli_fetch_array($result)) 
      { 
       echo "<tr>"; 
       echo "<td><input type='checkbox' name='brojUgovora[]' value='" . $row['Broj'] . "'/></td>"; 

감사합니다.

+0

관련 테이블에 대한 SHOW CREATE 문과 쿼리에 대한 EXPLAIN을 제공하는 것이 좋습니다 – Strawberry

+0

느린 쿼리 또는 천천히 진행되는 HTML의 4,000 행을 생성 및 표시하는 쿼리입니까? ? –

+0

HTML에서 4000 행을 생성하고 표시하는 속도가 느립니다. – Nimra

답변

0

첫 번째 : 데이터베이스 테이블의 인덱스로 상태를 추가하면 스크립트의 선택 부분이 빨라집니다.

둘째 : 매번 echo 문을 실행하는 대신 문자열을 연결하면 echo * 4000이 매우 느려질 수 있습니다.

$query = "SELECT * FROM tblRazduzeniUgovori WHERE Status='razduzen'"; 
    $output = ''; 
    if ($result = mysqli_query($con, $query)) { 
     while($row = mysqli_fetch_array($result)) 
     { 
      $output .= "<tr>"; 
      $output .= "<td><input type='checkbox' name='brojUgovora[]' value='" . $row['Broj'] . "'/></td>"; 
     } 
     } 
     echo $output; 
0

이 당신이 찾고있는,하지만 난 너무 많은 행을 표시하지 않도록 제안 무엇을하지 않을 수 있습니다, 당신은 제한 할 수 있습니다 :

<?php 
$displayed_items = 100; // items displayed per page 
$start = isset($_REQUEST['start']) ? $_REQUEST['start'] : 0; 
$end = $start + $displayed_items; 
$query = "SELECT * FROM tblRazduzeniUgovori 
      WHERE Status='razduzen' LIMIT {$start}, {$end}"; 
?> 
<table> 
<?php 
if ($result = mysqli_query($con, $query)) { 
     while($row = mysqli_fetch_array($result)): ?> 
      <tr> 
      <?php foreach ($a as $row):?> 
       <td> 
        <?php echo $a ?> 
       </td> 
      <?php endforeach; ?> 
      </tr> 
<?php endwhile; ?> 
</table> 
<form action='#' method='get'> 
    <input type='hidden' name='start' value='<?php echo $start + $displayed_items ?>' /> 
    <input type='submit' value='next page' /> 
</form> 

당신이 결과를 그냥 클릭을 BU 볼 수처럼 다음, 쿼리에 ORDER BY를 추가하지 마십시오.