【问题标题】:MAMP running extremely slow with external database connectionMAMP 与外部数据库连接运行速度极慢
【发布时间】:2013-10-11 22:05:34
【问题描述】:

我正在处理页面加载速度非常慢的问题。我使用 Chrome 控制台的网络选项卡来获取此信息(但在所有浏览器上都很慢)。

我已经深入研究了这个问题,但现在我完全被难住了。我已经尝试将Blowski's answer 更改为MAMP:重新加载页面非常慢(编辑我的hosts 文件),但没有让页面加载得更快。

我正在运行 OS X 10.8.5、CodeIgniter 2.1.3,并连接到远程 MySQL 数据库(与实时 Web 服务器位于同一服务器上)。不知道这是否与等待这么久有关。加载同一页面的速度测试如下:

本地主机
等待时间为 13.49 秒

网络服务器
等待时间为 222 毫秒

我可以做些什么来解决这个问题?

更新:我已将问题范围缩小到 MySQL 数据库(位于远程服务器上,与 PHP (MAMP) 的安装位置不同)。我需要更改任何设置来解决这个可怕的加载时间吗?我还使用 IP 地址而不是域名连接到数据库,所以我不认为这是安装 MySQL 的服务器的 DNS 问题。

【问题讨论】:

  • 就连接而言,“10 分钟路程”是什么意思? PHP和MySQL机器是在同一个数据中心吗?
  • 我的意思是MySQL服务器已经关闭。它不在国家的另一边。 PHP 和 MySQL 仅在 Web 服务器上位于同一个数据中心,而不在 localhost 上。
  • 对于这个问题,PHP 正在您的本地计算机上运行,​​连接到远程位置的 MySQL 数据库——对吗?这些应用程序之间有什么样的联系?这就是为什么你跑得很慢。当数据在 PHP 和 MySQL 之间来回移动时,对于每个页面请求,可能会有数十次 顺序 往返。解决方案是运行 MySQL 的本地副本,或者以某种方式减少数据层和应用程序层之间的网络拥塞。
  • 你是对的。我理解你的建议,但对我来说没有意义的是为什么这只发生在本地?我有一个网站在 Web 服务器上运行 MySQL 数据库,它运行良好,并且在不同服务器上运行 PHP/MySQL 之前已经完成了很多次。 “本地”PHP 有什么不同吗?
  • 你找到解决方案了吗?

标签: php mysql codeigniter mamp


【解决方案1】:

会不会是运行 MySQL 守护程序的服务器被配置为进行反向 DNS 查找?由于开发机器是标准 ISP 线路上的您自己的计算机,这可能会导致每个请求的严重延迟,因为反向 DNS 查找每次都必须超时。

【讨论】:

  • 我会更改配置以不这样做吗?
  • 这是您的 MySQL 服务器管理员必须设置的设置。不过,您可能在共享和/或托管主机上不走运。这里也有同样的情况。
  • 我有 root 访问权限和 MySQL 管理员访问权限
  • 要关闭 MySQL 反向 DNS 查找:编辑您的 mysql 配置文件(my.ini my.cnf 或其他)在 [mysqld] 部分添加 # 跳过客户端的反向 DNS 查找 skip-name-resolve
【解决方案2】:

对于一般解决方案,请尝试使用分析器 - 它用于诊断性能问题。

这个链接有一个很好的教程 - http://geek.michaelgrace.org/2011/08/xdebug-cachegrind-and-mamp-on-mac-osx/

您应该检查结果以了解哪些函数占用的执行时间最多。我怀疑你的远程数据库连接可能有问题,但分析器会给你明确的结果。

【讨论】:

  • 这没有回答我的问题,但我接受它,因为它帮助我找到了问题的根源(仍然没有解决)它归结为长时间等待 MySQL 连接/查询.
【解决方案3】:

如此长的延迟让我怀疑是罪魁祸首,尤其是因为它只在本地主机上。

检查您的 php.ini 是否启用了 xdebug(它可以在单独的 xdebug.ini 中找到),如果启用了,如果 xdebug.profiler_enable 设置为 true/1。

那个,或者 MAMP 使用另一个分析器。

【讨论】:

  • 感谢您的回答。我尝试将它添加到我的主 php.ini 和本地 php.ini 以及使用 ini_set 但没有解决问题的运气:(
  • 我并不是要把它设置为 true(从而启用它),我的意思是如果它存在,那可能是延迟的原因。也许您可以尝试将其设置为 false?
  • 哦,我明白了。好吧,默认情况下它是关闭的,但我手动将其设置为 false 但仍然无法正常工作。
  • 我已经更新了问题。发现这是我与远程 MySQL 数据库的连接...不确定您是否还有其他想法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-13
  • 1970-01-01
  • 2011-04-07
相关资源
最近更新 更多