Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 哪一个在资源方面成本较低?_Php_Mysql_Optimization - Fatal编程技术网

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

Php 哪一个在资源方面成本较低?,php,mysql,optimization,Php,Mysql,Optimization,我正在为我的一个网站进行优化改革,试图尽可能减少mysql查询 我正在实现部分缓存,它为站点的各个模块写入.txt文件,并根据需要进行更新。我遇到过一个,它不能对所有用户保持静态,因此在HD上编写的.txt文件需要通过php动态修改 这是通过 flush(); ob_start(); include('file.txt'); $contents = ob_get_clean(); 然后我修改$contents变量中的html,并为不同的用户回显它 或者,我可以让它保持原样,它运行一个mysql

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

我正在实现部分缓存,它为站点的各个模块写入.txt文件,并根据需要进行更新。我遇到过一个,它不能对所有用户保持静态,因此在HD上编写的.txt文件需要通过php动态修改

这是通过

flush();
ob_start();
include('file.txt');
$contents = ob_get_clean();
然后我修改$contents变量中的html,并为不同的用户回显它

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


哪一个比较便宜?每次运行一个查询。。。。或者通过我上面发布的方法,将html代码动态注入到静态.txt文件中?

读取文件(保存在非常奇怪的设置中)比查询DB(无网络交互,&c)快几分钟,但差异很难测量——试着看看是否可以测量

读取文件(保存在非常奇怪的设置中)将比查询数据库(无网络交互,&c)快几分钟,但差异很难测量——试试看你是否可以测量它

两种方法都试一下,然后选择一种显然是赢家的方法,或者如果不可用,则选择更易于维护的方法。这取决于数据库的位置、负载大小,以及您是否需要运行多个应用程序实例(然后他们需要在网络上共享此文件,并且该文件不再是本地文件)。

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

首先优化您的查询!然后使用memcache或类似的缓存系统,用于频繁访问的数据,然后可以添加文件缓存。我们将三者结合使用,运行非常平稳。小型优化查询并不是那么糟糕。如果数据库位于本地服务器中,则网络不是问题。不要忘记使用MySQL查询缓存(我想你确实使用了MySQL)。

首先优化你的查询!然后使用memcache或类似的缓存系统,用于频繁访问的数据,然后可以添加文件缓存。我们将三者结合使用,运行非常平稳。小型优化查询并不是那么糟糕。如果数据库位于本地服务器中,则网络不是问题。不要忘记使用MySQL查询缓存(我想您确实使用了MySQL)。

性能瓶颈在哪里

如果您不知道瓶颈,就无法对优化进行任何合理的评估


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

性能瓶颈在哪里

如果您不知道瓶颈,就无法对优化进行任何合理的评估


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

以下是重构PHP/MySQL站点代码时适用的模式

每页的查询数量是绝对关键的——一个带有连接的复杂查询是最快的,只要索引是正确的。根据我的经验,一个页面几乎总是可以生成五个或更少的查询,再加上类和类数组的良好使用。通常一次查询会话,一次查询应用程序

索引之后,需要处理的最大事情是缓存配置参数

从不在循环中进行查询

将数据库查询移动到文件从来都不是一个有用的策略,特别是因为它常常会破坏查询的完整性


Alex和其他人关于测试的看法是正确的。如果你的页面明显变慢,那么它们变慢是有原因的——在你知道原因是什么并且能够衡量你的更改的后果之前,甚至不要开始更改任何东西。通过猜测进行重构始终是一种失败的策略,尤其是在(如您的情况)增加复杂性时。

以下是重构PHP/MySQL站点代码时适用的模式

每页的查询数量是绝对关键的——一个带有连接的复杂查询是最快的,只要索引是正确的。根据我的经验,一个页面几乎总是可以生成五个或更少的查询,再加上类和类数组的良好使用。通常一次查询会话,一次查询应用程序

索引之后,需要处理的最大事情是缓存配置参数

从不在循环中进行查询

将数据库查询移动到文件从来都不是一个有用的策略,特别是因为它常常会破坏查询的完整性


Alex和其他人关于测试的看法是正确的。如果你的页面明显变慢,那么它们变慢是有原因的——在你知道原因是什么并且能够衡量你的更改的后果之前,甚至不要开始更改任何东西。通过猜测进行重构始终是一种失败的策略,尤其是当(如您的情况)您增加复杂性时。

我知道我只是在抓救命稻草,这只是我最讨厌的事情。。。尝试将“写此页面的查询数量”降至最低。不要只关注查询数量。完全有可能几个查询比一个查询更高效,或者一个查询比另一个查询更高效。我的主要观点@Yegor是,当涉及性能时,不要猜测,要衡量:在这方面,每个人的直觉有时都是错误的。在一个尽可能接近你真实需求的情况下进行测量,以获得对你得到的答案的信心。我知道我只是在抓救命稻草,这只是我的一个宠物脾气比其他任何事情都要坏。。。尝试将“写此页面的查询数量”降至最低。不要只关注查询数量。这完全有可能发生在几周内