应用程序在浏览器中超时,但在命令行中不超时



我正在使用CodeIgniter和MySQL构建一个Web应用程序。我对这个感到困惑:

我有一个 MySQL 视图,其中 3 个表的池,其中一个表有 ~600,000 行数据。在此视图上,我进行以下查询:

SELECT *, AVG(value_avg) hourly_value_avg, AVG(count) hourly_count_avg, (AVG(value_avg) * AVG(count)) hourly_time_consumed FROM (`perf_view`) GROUP BY `event_id`
通过

MySQL客户端,得出30个结果大约需要5秒,通过命令行,调用执行查询的确切控制器和方法,花费的时间大致相同,问题是,当我在浏览器中点击页面时,我收到以下错误:

Error Number: 2013
Lost connection to MySQL server during query

阅读此错误时,我发现这可能是客户端错误,即PHP超时,而不是DB。我对此有点困惑,有没有人遇到过同样的问题?

真的很感激我能得到的任何帮助:)

在控制器构造函数或任何函数中,您可以尝试通过 codeigniters 框架延长脚本使用的时间和内存。可以使用以下命令设置这些内容。

set_time_limit(0);     // set the execution time to any time. in my case infinite time
ini_set('memory_limit', '256M');      // set the memory use to whatever here 256 megs

您的情况听起来可能是内存问题。 600,000 条记录很容易违反 PHP 配置或代码点火器配置中的内存限制。两者都通常设置得很低,如果您的 600,000 条记录查询返回包含许多列的表的相当大块,我可以看到值得检查的内存限制问题。祝你好运。

最新更新