一个网页有多少查询是好的性能?如果该网页是主页,被查看多次。
不如...
$sql1 = mysql_query("SELECT * FROM a", $db1);
while($row = mysql_fetch_assoc($sql1)){
$sql2 = mysql_query("SELECT * FROM b WHERE aid='a'", $db2);
$a = mysql_fetch_assoc($sql2);
}
实际上我可以通过INNER JOIN将$sql1和$sql2合并在一起,但问题是$sql1是来自数据库1的查询数据,而$sql2是来自 db2 的查询数据。而且我使用的Parallels Plesk Panel不允许我将同一个数据库用户添加到多个数据库。
如果我在我的网站上使用此代码,它是好的?或无论如何要这样做?
谢谢你...
4条答案
按热度按时间06odsfpq1#
实际上你有两个问题。
一般的和特殊的。
在我看来,两者都有明显的答案。
在一个网页中查询多少次才算性能良好?
查询数量和性能之间没有直接的联系。数据库设置、架构和调优对性能负责。
并且查询的数量应该仅仅由数据库架构引起。根据需要使用尽可能多的查询。不要为了追求性能而不惜任何代价减少查询的数量。
好吃吗?
如果你别无选择,这有关系吗?
还有一个没说出口的问题
我是否应该关心这个代码段的性能?
你应该吗?
您目前是否有任何性能问题?
如果不是--为什么要担心呢?为什么要担心这个特定的片段,而不是其他任何片段呢?
如果是-您必须首先分析您的代码。
然后根据分析结果构建优化策略,可能是查询的数量,也可能是适当的索引、集群化、服务器升级。
不要盲目射击,采取明智的步骤。
ds97pgxw2#
我喜欢把我的控制在12岁以下。
不过说真的,这是毫无意义的。如果假设有理由让你在一个页面上有800个查询,那么你可以继续做下去。你可能会发现每页的查询数量仅仅取决于你在做什么,尽管在正常情况下,我会惊讶地看到超过50个(尽管现在,如果你把DB调用抽象出来,你很难意识到你到底在做多少次)。
查询速度慢更重要
我曾经对某个基于PHP的论坛软件感到沮丧,它在一个页面上有35个查询,运行速度非常慢,但那是很久以前的事了,现在我知道那个特定的安装运行速度慢的原因与在一个页面上有35个查询无关。例如,只有一两个查询占用了大部分时间。它只是有几个非常慢的查询,这些都是由位置恰当的索引固定的。
我认为识别和修复慢速查询应该在识别和消除不必要的查询之前进行,因为它可能会带来更大的不同。
甚至考虑到20个快速查询可能比一个慢速查询快得多-查询的数量不一定与速度相关。有时,通过将慢速查询拆分为多个查询,可以减少负载并加快页的速度。
尝试缓存
有很多方法可以缓存应用程序的一部分,这可以减少查询的数量,而不会降低功能。像memcached这样的库使这一点变得非常容易,但运行速度非常快。这也可以帮助提高性能,而不仅仅是减少查询的数量。
如果查询确实不必要,并且性能确实产生了影响,则删除/合并它们
只要考虑寻找慢查询并优化它们,或者首先缓存它们的结果。
tgabmvqs3#
测量一下。
对于上面概述的特定情况,如果可能的话,我将合并成一个join。
一般来说,每个请求有多个查询是很正常的。
许多站点每次查询都有数十个请求,它们的性能相当高。
使用Apache bench之类的负载测试器(如果安装了Apache,请键入ab查看参数)。
7nbnzgx94#
我也有同样的问题。
问题是你在循环中使用查询。如果你的记录a有10行,它会进行10次查询。如果你的记录'a'有100行,它会进行100次查询。所以你的记录'a'的行数越多,情况就越糟。
解决方案是将请求放入数组中,然后使用正确的foreach循环,只需要2个查询就可以显示相同的内容。我找到了This site,它对这个主题非常清楚。