【发布时间】:2013-02-14 18:40:03
【问题描述】:
我有一个非常简单的 sql 查询,它只是一个 select * from "table name"
我没有索引我的表或其他任何特殊的东西。
问题是,当我通过phpmyadmin 执行时,查询大约需要 0.003 秒,但当我通过网站中的浏览器执行时,大约需要 3 分钟!
表中有 20K 行和 19 个字段。谁能帮帮我?
include "config.php"; //Connect to Database
$query= mysql_query("SELECT * FROM table_name");
$num_rsl=mysql_num_rows($query);
echo '<table border="1">';
for($i=0; $i <$num_rsl; $i++)
{
echo '<tr>';
$row=mysql_fetch_assoc($query);
echo '<td>'.$row['id'].'</td>';
echo '<td>'.$row['idLeistung'].'</td>';
echo '<td>'.$row['dtEAN'].'</td>';
echo '<td>'.$row['dtReifenBreite'].'</td>';
echo '<td>'.$row['dtReifenQuerschnitt'].'</td>';
echo '<td>'.$row['dtReifenBauart'].'</td>';
echo '<td>'.$row['dtReifentragfahigkeit'].'</td>';
echo '<td>'.$row['dtReifenGeschwindigkeitsindex'].'</td>';
echo '<td>'.$row['dtReifenTTTL'].'</td>';
echo '<td>'.$row['dtReifenProfil'].'</td>';
echo '<td>'.$row['dtHersteller'].'</td>';
echo '<td>'.$row['dtbestand'].'</td>';
echo '<td>'.$row['FZG'].'</td>';
echo '<td>'.$row['dtEinsatzZweck'].'</td>';
echo '<td>'.$row['dtArtikelNr'].'</td>';
echo '<td>'.$row['dtBeschreibung'].'</td>';
echo '<td>'.$row['dtArtikelNrA2'].'</td>';
echo '<td>'.$row['dtFremdVKPreis'].'</td>';
echo '</tr>';
}
echo '</table>';
【问题讨论】:
-
这就是你不再使用
mysql_*的原因。 -
显示的来源与描述的问题无关。
-
没有 select * from "table name" !
-
好的,更新后:我假设 3 分钟用于实际渲染 20k 行,而不是查询它
-
您的应用程序将无法扩展。可能是您找到了一种减少时间的方法,但表格会增加,您很快就会遇到同样的问题。考虑一下您的应用程序和一个不需要获取所有行的概念。
标签: mysql performance