我正在尝试以更好的方式重新编码我的一个旧应用程序。它不是太大,但在加载时会运行大约 80 个查询。但仍会在 2 秒内加载到浏览器中。我可以优化几个查询,没关系。我的问题是我应该担心这个还是一切都好。加载页面的平均查询请求应该是多少?我想知道标准限制。
3 回答
我会从不接触查询开始,而是通过测量这些查询需要多少时间
- 数据库连接/数据库查询
- 后端处理(业务)逻辑
- 网络滞后
- HTML 渲染 + 任何 javascript 执行
其中任何一个都可能是罪魁祸首,甚至可能是其他原因。不过,可能是其中之一。当您知道究竟是什么在花费时间时,它应该在解决问题时为您指明正确的方向。
做一些真实的性能测试来支持这些数字也没有什么坏处……
每页没有“标准查询计数”。例如,您可以使用“连接”,这可能会删除数百个单独的查询!
但是,我更关心你的“不到 2 秒”加载意味着它超过 1 秒!如果它是针对公共用户(例如,不是 Intranet),那么即使在普通计算机上也应该低于 0.5 秒!为了帮助实现这一点,请确保整个页面的输出缓冲处于打开状态(在 php.ini 中设置),因为这将大大提高页面加载速度。有关输出缓冲和压缩的更多信息,请参阅我的帖子:Flushing the HTML document early - with ini_set('zlib.output_compression','ON')?
每页查询没有限制。您确实有超时限制,但您显然在其中。
如果您要遍历 n 个结果,即。在嵌套数据模型中,这完全没问题。如果你不是,我相信这是有原因的。2 秒对于页面加载来说有点长,但我当然对你的页面一无所知。
一个页面上的 80 个查询确实没有错,我只是问自己一个问题,为什么?
查找长查询的一个简单技巧,看看实际查询需要多长时间:
$start = microtime(1);
mysql_query('SELECT blah blah');
echo (microtime(1) - $start);