【发布时间】:2011-05-20 23:19:03
【问题描述】:
您好,几周前我在这里问了一个问题,关于为我的大约 5000 条记录的数据库加速 mysql 输出。我使用建议来使用 ob_start() 和存储过程。但是它仍然几乎使浏览器崩溃并且输出记录非常慢,任何想法如何优化它:
ob_start();
$conn = new Mysqli("xxxxxxxxxx", "xxxxxxxxx", "xxxxxxxxx", "xxxxxxxxxx");
$result = $conn->query(sprintf("call list_products(%d)", 6000));
while($row = $result->fetch_assoc()){
echo "<tr>";
echo "<td>" . $row['xxxxxxx'] . "</td>";
echo "<td>" . $row['xxxxx'] . "</td>";
echo "<td>" . $row['xxxxx'] . "</td>";
echo "<td>" . $row['xxxxxx'] . "</td>";
echo "<td>" . $row['xxxx'] . "</td>";
echo "<td>" . $row['xxx'] . "</td>";
echo "<td>" . $row['xx'] . "</td>";
echo "<td>" . $row['xxxx'] . "</td>";
echo "</tr>";
}
echo "</tbody>";
echo "</table>";
$result->close();
$conn->close();
ob_end_flush();
【问题讨论】:
-
你确定有多少延迟是由 MySQL 和 PHP 造成的吗?例如,如果您直接从 MySQL 控制台调用存储过程,它返回结果的速度有多快?你的存储过程是做什么的——你能提供代码吗? MySQL 和 PHP 是在同一台服务器上,还是在不同的服务器上?
-
您可能还想查看mysql_query_unbuffered - 但请务必仔细阅读文档,因为有一些警告。
-
同一台服务器,我正在使用 phpMyAdmin,说我没有使用正确的上下文很痛苦!?
-
我认为上下文问题是PHPMyAdmin某些版本中的一个错误。看看这篇文章的公认答案及其 cmets:stackoverflow.com/questions/2454071/…
标签: php mysql stored-procedures