哪一个在资源方面成本较低?

时间:2009-06-15 01:57:54

标签: php mysql optimization

我正在为我的一个网站进行优化运动,试图减少尽可能多的mysql查询。

我实现了部分缓存,它为网站的各个模块写入.txt文件,并根据需要更新它们。我遇到过一个,对所有用户来说都不能保持静态,所以写在高清上的.txt文件需要通过php动态修改。

通过

完成
flush();
ob_start();
include('file.txt');
$contents = ob_get_clean();

然后我修改$ contents变量中的html,并为不同的用户回显。

或者,我可以保持原样,它运行一个mysql查询,查询一个包含类别名称的小表(大约13个)。

哪一个便宜?每次运行一个查询....或者通过上面发布的方法执行查询,即时将html代码注入静态.txt文件?

5 个答案:

答案 0 :(得分:2)

读取文件(保存在非常奇怪的设置中)比查询数据库要快一点(没有网络交互,& c),但差别难以衡量 - 只是试着看看你是否可以测量它!

答案 1 :(得分:1)

首先优化您的查询!然后使用memcache或类似的缓存系统,对于经常访问的数据,然后您可以添加文件缓存。我们使用所有三个组合,它运行非常顺利。小优化查询并不是那么糟糕。如果您的数据库位于本地服务器 - 网络不是问题。并且不要伪造使用MySQL查询缓存(我猜你确实使用MySQL)。

答案 2 :(得分:1)

您的性能瓶颈在哪里?

如果您不了解瓶颈,则无法对优化做出任何明智的评估。

收集一些指标,并进行相应优化。

答案 3 :(得分:0)

尝试两者并选择一个明显的赢家或者如果不可用,更易于维护的那个。这取决于数据库的位置,获取的负载量,以及是否需要运行多个应用程序实例(然后他们需要在网络上共享此文件,而不再是本地文件)。

答案 4 :(得分:0)

当我重构PHP / MySQL站点代码时,以下是适合我的模式。

每页查询的数量绝对至关重要 - 只要索引正确,一个带连接的复杂查询就是最快的。根据我的经验,几乎总是可以使用五个或更少的查询生成单个页面,还可以使用类和类数组。通常一个会话查询和一个应用查询。

索引之后,最重要的事情是缓存配置参数。

永远不要在循环中查询。

将数据库查询移动到文件从来就不是一个有用的策略,尤其是因为它最终会破坏您的查询完整性。

Alex和其他人对测试是正确的。如果你的页面显然很慢,那么它们因某种原因(或原因)而变慢 - 甚至在你知道原因是什么之后甚至不会改变任何东西,并且可以衡量你的变化的后果。通过猜测进行重构总是一种失败的策略,特别是当你(如你的情况下)增加复杂性时。