【发布时间】:2012-12-15 23:41:00
【问题描述】:
我正在使用 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 客户端大约需要 5 秒才能得出 30 个结果,通过命令行,调用执行查询的确切控制器和方法,时间大致相同,问题是,当我点击页面时在浏览器中,我收到以下错误:
Error Number: 2013
Lost connection to MySQL server during query
阅读此错误后,我发现它可能是客户端错误,即 PHP 超时,而不是数据库。有点困惑,有没有人遇到过同样的问题?
如果能得到任何帮助,我将不胜感激:)
【问题讨论】:
-
通过谷歌搜索错误消息开始您的调试工作。您会经常看到许多其他人遇到过它。
-
将查询更改为非常简单的查询,该查询将超级快速地返回一条记录,看看是否可以验证连接是否良好并开始寻找其他地方。
-
@palako 我做到了,它工作正常,当数据集较小时这工作正常。
-
@rambocoder 我已经尝试调试这个 3 天了,就像我遇到的任何问题一样,我从谷歌搜索开始。我来这里是因为我没有发现任何有用的东西。谢谢。
-
那么如果查询大约需要5秒,那么需要多长时间才能得到错误呢?还不止这些吗?检查 php.ini 文件中的 mysql.connect_timeout 是否设置为 5 秒或更短。
标签: php mysql codeigniter shell