【发布时间】:2017-08-03 23:42:34
【问题描述】:
一段时间以来,我遇到了这个问题,导致我的 PHP 需要超过 20 秒才能加载(即使在包含 Apache + SQL Server 的主机上也是如此)。
Google Chrome 网络报告
我已经进行了一些挖掘,似乎以下将所有数据转换为数组的行是罪魁祸首。
$sql = "SELECT `date`, `type`, `author`, `commit_file`,
`description`, `commit_num`
FROM ".$tablename."
ORDER BY date, commit_num, type DESC";
define('MYSQL_BOTH',MYSQLI_BOTH);
define('MYSQL_NUM',MYSQLI_NUM);
define('MYSQL_ASSOC',MYSQLI_ASSOC);
define('personaname', 'personaname');
define('players', 'players');
define('response', 'response');
define('avatarmedium', 'avatarmedium');
$result = $conn->query($sql);
$retrievedData = $result->fetch_all(MYSQLI_ASSOC);
最后一个赞(特别是fetch_all)会导致页面加载时间过长。我试过直接在 SQL 中运行查询,它只需要 0.078 秒(只有 55 个条目,这样才有意义)。
有没有办法对此进行优化,使其不会长时间停止页面?
谢谢
【问题讨论】:
-
您的开发设置是什么(MAMP/XAMPP/VM?)可能您的计算机内存不足或者您的 PHP 内存限制非常低
-
Windows Server 2016 上的 IIS,有 64GB 的 DDR4,所以这不应该是问题...
-
它是什么?标签上写着“mysql”;第一段说“SQL Server”。
-
行有多大?例如,
description是千兆字节的字符串吗?
标签: php mysql arrays performance fetchall