我有一个非常简单的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>';
答案 0 :(得分:0)
通常,phpmyadmin会将您通过它发出的查询修改为MySQL,以限制结果集中的行数。你的
SELECT * FROM table_name
最有可能被phpmyadmin更改为
SELECT * FROM table_name LIMIT 0, 30
拉动三十行肯定比拉动所有行花费更少的时间。
@scones在评论中提到了这一点:从表中拉出20K行,将它们变成一个大的旧HTML表格,然后将它们通过网络发送到浏览器需要花费大量的时间。但是,经过的时间可能主要取决于您的Web服务器(PHP运行的地方)的性能以及服务器和浏览器之间的连线。