【问题标题】:mysql slow speed simple querymysql慢速简单查询
【发布时间】:2013-02-14 18:40:03
【问题描述】:

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

【问题讨论】:

  • 这就是你不再使用mysql_*的原因。
  • 显示的来源与描述的问题无关。
  • 没有 select * from "table name" !
  • 好的,更新后:我假设 3 分钟用于实际渲染 20k 行,而不是查询它
  • 您的应用程序将无法扩展。可能是您找到了一种减少时间的方法,但表格会增加,您很快就会遇到同样的问题。考虑一下您的应用程序和一个不需要获取所有行的概念。

标签: mysql performance


【解决方案1】:

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

SELECT * FROM table_name 

很可能会被 phpmyadmin 更改为

SELECT * FROM table_name LIMIT 0, 30

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

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

【讨论】:

  • 所以没有理由做更多的事情期待分页?我问是因为我不知道索引的用途......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
  • 2021-12-15
  • 2016-01-10
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
相关资源
最近更新 更多