2014-01-19 75 views
-1

你好我的數據庫查詢速度很慢。 5分鐘在html表中列出4000行...請幫助。加快數據庫查詢功能

  **$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

查詢速度慢嗎,還是生成並顯示4,000行HTML緩慢? –

+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> 

一樣,你可以看到的結果只是卜點擊下一個,不要忘記添加ORDER BY到查詢