mysql慢速简单查询

时间:2013-02-14 18:40:03

标签: mysql performance

我有一个非常简单的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>';

1 个答案:

答案 0 :(得分:0)

通常,phpmyadmin会将您通过它发出的查询修改为MySQL,以限制结果集中的行数。你的

SELECT * FROM table_name 

最有可能被phpmyadmin更改为

SELECT * FROM table_name LIMIT 0, 30

拉动三十行肯定比拉动所有行花费更少的时间。

@scones在评论中提到了这一点:从表中拉出20K行,将它们变成一个大的旧HTML表格,然后将它们通过网络发送到浏览器需要花费大量的时间。但是,经过的时间可能主要取决于您的Web服务器(PHP运行的地方)的性能以及服务器和浏览器之间的连线。