0

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

1 回答 1

0

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

SELECT * FROM table_name 

最有可能被 phpmyadmin 更改为

SELECT * FROM table_name LIMIT 0, 30

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

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

于 2013-02-14T22:27:16.340 回答