mysql慢速简单查询

mysql慢速简单查询

问题描述:

我有一个非常简单的sql查询,这只是一个select * from "table name" 我没有索引我的表或其他任何特殊的东西。mysql慢速简单查询

的问题是,当我通过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>'; 
+2

这就是为什么你不再使用'mysql_ *'的原因。 – hjpotter92 2013-02-14 18:42:46

+3

显示的来源与所描述的问题无关。 – scones 2013-02-14 18:43:18

+2

从“表名”中没有选择*! – Hokascha 2013-02-14 18:44:34

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

SELECT * FROM table_name 

最有可能被通过的phpmyadmin改为

SELECT * FROM table_name LIMIT 0, 30 

拉30行肯定需要比拉的所有行时间要少。

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

+0

所以没有理由做更多的东西分页?我问,因为我不知道使用索引... – trelamenos 2013-02-14 23:16:51