【问题标题】:SQL query extremely slow in Kohana web app on EasyPHP win7 serverEasyPHP win7服务器上的Kohana Web应用程序中的SQL查询非常慢
【发布时间】:2013-09-26 20:11:25
【问题描述】:

我有一个带有 Apache、PHP 和 MySQL 的 EasyPHP 本地 Web 服务器。到目前为止,我一直在使用一个只有 500 条记录的数据库。有时在查询数据库时,在返回数据之前会有很大的延迟,可能大约 10 秒,但并不一致。也许每 10 个用户搜索就会发生一次。今天我将一堆测试数据加载到 6 个表中。现在每个表都有大约 15,000 条记录。现在,在搜索用户时,每次返回数据大约需要 25 秒。

这是 SELECT 查询:

SELECT SQL_CALC_FOUND_ROWS criteria.id, criteria.uid
FROM user_profile
INNER JOIN criteria ON (criteria.id = user_profile.cid)
WHERE ((criteria.city = 250)
  AND (user_profile.dob BETWEEN STR_TO_DATE('1978-09-27', '%Y-%m-%d')
  AND STR_TO_DATE('1993-09-27', '%Y-%m-%d'))
  AND (criteria.gender = 2)
  AND (EXISTS(SELECT id FROM criteria_interests
              WHERE cid = user_profile.cid AND value = 1)
       OR EXISTS(SELECT id FROM criteria_interests
                 WHERE cid = user_profile.cid AND value = 2)))
  AND (user_profile.uid != 2)
LIMIT 0, 18

该查询大约需要 25 秒才能返回 202 个结果。如果我在 phpMyAdmin 中运行该查询,它会立即加载。

我不确定劫持在哪里。我知道SQL_CALC_FOUND_ROWS 有时会导致速度变慢,但不是 25 秒才能返回 202 行。这里有问题。

我想知道如何找出问题所在。我第一次提到的间歇性延迟基本上是在我安装EasyPHP之后发生的,所以我认为这是EasyPHP的问题。但现在看到随着更多数据库记录问题变得更糟,我认为这是一个 MySQL 问题。但是,当我在 phpMyAdmin 中运行查询时,速度非常快。所以现在我认为这是一个 PHP 问题。

我的 PHP 内存限制设置为 128M,这可能不是很多,但不会导致 25 秒的延迟。

有人知道我可以如何解决这个问题吗?在配置 Apache、PHP 或 MySQL 方面,我不是最懂行的,所以我不知道该怎么做。

感谢您的建议。

【问题讨论】:

  • 你试过Kohana profiler。这至少可以确定您是否在正确的地方寻找。还要确保您在 MySql 中正确指定了索引,并考虑启用 Mysql slow query log
  • 我不知道探查器!这使我直接进入问题查询,这实际上是在搜索结果选择之后的 COUNT() 选择。谢谢你。这基本上回答了我的问题,所以如果你把它放在答案中,我会将其标记为已接受。

标签: php mysql kohana easyphp


【解决方案1】:

我在从数据库加载时遇到了类似的问题。它在我的 EasyPHP 本地环境中运行非常缓慢。但是,当我将其上传到远程托管服务器上时,问题已经消失了。所以如果你的 EasyPHP 运行速度很慢,不用太担心,它会在真实服务器上运行良好。

如果您真的无法通过本地开发来处理这种滞后,请改用 XAMPP 环境。 下载链接: http://www.apachefriends.org/en/xampp.html

【讨论】:

    【解决方案2】:

    我想我已经找到了解决您问题的方法。这可能无法解决特定问题,但无论如何它可能会解决它。 你的问题让我想到我能做些什么来解决这个问题......这听起来可能不太舒服,但我只是通过安装 wamp 服务器来修复它:

    http://www.wampserver.com/en/

    现在你可能会说......“嘿,你说你已经修复它而不是更改开发服务器”

    是的!一旦我安装了 wamp 服务器并在 youtube 视频上显示的 mysql 配置上应用了它之后:

    http://www.youtube.com/watch?v=8ob7Rvzobec&noredirect=1

    我的 EasyPHP 得到了巨大的速度提升!现在它就像一个魅力。来自数据库的查询非常快。从这个地方我想提醒你,我面临着和你一样的问题。现在问题解决了,我的 EasyPHP 又可以发光了。

    也许这也能解决您的问题。祝你好运! :)

    【讨论】:

      猜你喜欢
      • 2013-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-12
      • 2015-07-09
      相关资源
      最近更新 更多