1

我有一个带有 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 方面,我不是最了解的,所以我不知道该怎么做。

感谢您的任何建议。

4

2 回答 2

1

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

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

于 2013-10-10T22:48:44.437 回答
0

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

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

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

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

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

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

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

于 2013-10-29T23:11:59.943 回答