SQL查询在EasyPHP win7服务器上的Kohana Web应用程序中非常慢


SQL query extremely slow in Kohana web app on EasyPHP win7 server

我有一个包含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方面,我并不是最有知识的,所以我不确定如何做到这一点。

感谢您的任何建议。

我在从数据库加载时遇到了类似的问题。它在我的EasyPHP本地环境中运行得非常慢。但是,当我将其上传到远程托管服务器时,问题已经消失了。因此,如果您的EasyPHP运行应用程序缓慢,请不要太担心,它将在真实服务器上正常运行。

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

我想

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

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

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

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

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

我的EasyPHP得到了巨大的速度提升!现在它就像一个魅力。来自数据库的查询非常快。在这个地方,我想提醒你,我遇到了和你完全相同的问题。现在问题解决了,我的EasyPHP可以再次发光了。

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