Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.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与MySQL的结合速度非常慢_Php_Mysql_Apache2 - Fatal编程技术网

PHP与MySQL的结合速度非常慢

PHP与MySQL的结合速度非常慢,php,mysql,apache2,Php,Mysql,Apache2,我的一台服务器当前运行缓慢。它使用PHP和MySQL运行apache2服务器。MySQL服务器与Web服务器本身位于同一台计算机上 每当我请求一个包含MySQL查询的PHP文件时,页面大约需要24秒才能显示出来。在请求页面时,apache2的CPU使用率上升到了11%(!),这与一周前的情况相比非常明显 非PHP文件或没有MySQL查询的PHP文件将立即显示 是什么导致了包含MySQL查询的脚本出现问题? 我在apache错误日志中找不到任何有用的信息。数据库查询需要时间运行,每个查询至少打开一

我的一台服务器当前运行缓慢。它使用PHP和MySQL运行apache2服务器。MySQL服务器与Web服务器本身位于同一台计算机上

每当我请求一个包含MySQL查询的PHP文件时,页面大约需要24秒才能显示出来。在请求页面时,apache2的CPU使用率上升到了11%(!),这与一周前的情况相比非常明显

非PHP文件或没有MySQL查询的PHP文件将立即显示

是什么导致了包含MySQL查询的脚本出现问题?
我在apache错误日志中找不到任何有用的信息。

数据库查询需要时间运行,每个查询至少打开一个文件。文件访问速度慢


通过在RAM中而不是从硬盘上运行数据库,您可以加快请求速度,但真正的答案可能是尽可能多地缓存,以便尽可能少地进行数据库查询。

数据库查询需要时间来运行,并且每个查询至少需要打开一个文件。文件访问速度慢

您可以通过在RAM中而不是从硬盘上运行数据库来加快请求速度,但真正的答案可能是尽可能多地缓存,这样您就可以尽可能少地查询数据库。

在mysql控制台中

show full processlist;  <-- to show what are the current SQL
在mysql控制台中

show full processlist;  <-- to show what are the current SQL


您可以检查mysql数据库是否因某些cms日志功能而大于2GB(或4GB)并超过文件大小限制。

您可以检查mysql数据库是否因某些cms日志功能而大于2GB(或4GB)并超过文件大小限制。

您可以访问mysql日志吗?我可以访问整个服务器。不幸的是,我不确定Debian下的日志保存在哪里。目录/var/log/mysql是空的,因此我假设它将它们存储在其他地方。文件/var/log/mysql.err和mysql.log为空。查询大小是否影响响应时间?也就是说,如果您编写一个不涉及任何表的简单标识,是否还需要半分钟才能响应?我尝试手动执行几个MySQL查询,当我通过终端登录MySQL服务器时,它们响应非常快。当我通过PHP脚本执行这些操作时,它们的速度非常慢,需要很长时间才能响应。制作一个只包含db连接代码和单个查询的孤立PHP页面,然后运行它,然后在终端中运行相同的查询,看看速度是否有任何差异……您可以访问MySQL日志吗?我可以访问整个服务器。不幸的是,我不确定Debian下的日志保存在哪里。目录/var/log/mysql是空的,因此我假设它将它们存储在其他地方。文件/var/log/mysql.err和mysql.log为空。查询大小是否影响响应时间?也就是说,如果您编写一个不涉及任何表的简单标识,是否还需要半分钟才能响应?我尝试手动执行几个MySQL查询,当我通过终端登录MySQL服务器时,它们响应非常快。当我通过PHP脚本执行这些操作时,它们的速度非常慢,需要很长时间才能响应。制作一个只包含db连接代码和单个查询的孤立PHP页面,然后运行它,然后在终端中运行相同的查询,看看速度是否有任何差异……感谢您的回答,但该站点过去运行得非常快,就像一周前一样。突然之间,它的速度非常慢,所以我假设触发了某种超时?不过我缺乏背景知识。谢谢你的回答,但是这个网站过去运行得很快,就像一周前一样。突然之间,它的速度非常慢,所以我假设触发了某种超时?不过我缺乏背景知识。谢谢你的回答。show full processlist返回了两行-显然processlist查询本身和来自我的站点的查询:| 59 | root | localhost | db1 | Sleep | 20 | | NULL | Time:20似乎相当高。Sleep是Sleep zzzzzz。。。你应该打开一些慢页面,同时显示完整的processlist以进行比较。好吧,但似乎在这个睡眠条目消失后页面终于加载了。我用wordpress博客上的一个较慢的页面测试了它。你的站点连接到任何外部资源了吗?比如你的wordpress是在另一个网络上托管的?睡眠状态为mysql连接已打开,但处于空闲状态,等待下一次查询。wordpress博客也位于同一台服务器上。感谢您的回答。show full processlist返回了两行-显然processlist查询本身和来自我的站点的查询:| 59 | root | localhost | db1 | Sleep | 20 | | NULL | Time:20似乎相当高。Sleep是Sleep zzzzzz。。。你应该打开一些慢页面,同时显示完整的processlist以进行比较。好吧,但似乎在这个睡眠条目消失后页面终于加载了。我用wordpress博客上的一个较慢的页面测试了它。你的站点连接到任何外部资源了吗?比如你的wordpress是在另一个网络上托管的?睡眠状态是mysql连接已打开,但处于空闲状态,等待下一次查询。wordpress博客也托管在同一台服务器上。我搜索了一个查询以获得数据库大小,它似乎只有大约2.1 MB。我搜索了一个查询以获得数据库大小,它似乎只有大约2.1 MB。
set session query_cache_type=off;