0

私は非常に単純な sql クエリを持っています。これはselect * from "table name" 、テーブルやその他の特別なものにインデックスを付けていないだけです。

問題はphpmyadmin、クエリを で実行すると約 0.003 秒かかりますが、Web サイトのブラウザで実行すると約 3 分かかることです。

テーブルには 20,000 行あり、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

30 行をプルする方が、すべての行をプルするよりも確実に時間がかかりません。

@scones はコメントでこれについて言及しました: テーブルから 20K 行を取り出し、それらを大きな古い HTML テーブルに変換し、ネットワーク経由でブラウザーに送信するには、多くの経過時間がかかります。しかし、その経過時間は、おそらく Web サーバー (PHP が実行されている場所) のパフォーマンスと、サーバーとブラウザーの間の配線によって決まります。

于 2013-02-14T22:27:16.340 に答える