使用功能加速数据库查询

时间:2014-01-19 01:03:09

标签: php mysql performance function

你好我的数据库查询很慢。在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>";

谢谢你。

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分: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添加到查询中