希望这个问题不会太宽泛/模糊/笼统。
我在 WordPress 中开发了一个网站,它使用大量的自定义 Ajax 来加载搜索结果。这不是(我相信)特定于 WordPress 或 Ajax(甚至可能不是 PHP,idk!)的问题。
在我运行 WAMP 的基本 HP(8gb 内存,i7 处理器)上开发时,该站点运行得非常棒。我还没有看到一个 Ajax 调用花费超过 2-3 秒。
但是,当该站点在我的 VPS(Hostgator 级别 9)上运行时,它会慢得多 - ajax 调用平均需要 6 秒才能完成,通常在 10-12 秒达到峰值。
我的问题是:缓慢因素是我的 php 函数(包括一些小到相对较大的 mysql 查询)的故障,还是服务器的故障?我问的唯一原因是因为本地站点和服务器上的站点之间的加载时间存在令人难以置信的显着差异。
我意识到这可能很模糊;如果需要更多信息,我很乐意提供任何我能提供的东西(除了案例场景,不幸的是,我有一个保密协议,禁止我共享站点 ATM)。
更多信息:
某些 ajax 调用是瞬时的(例如那些只从数据库中提取适量信息的调用)是瞬时的。
需要几秒钟的调用是从几个不同的表中提取大量信息的调用(请记住,我在 WordPress 中工作,并使用 WP_Query 类,所以 SQL 查询甚至数据库结构都不是我的自己的 - 使用帖子/帖子元表),从结果中生成 HTML,并将其返回给 JavaScript 以进行附加。该站点的主要搜索结果会根据位置提取结果,但随后还会提取其他一些数据(图像、结果元数据等)。我不可能看到这些类型的过程瞬间发生,尽管它们通常发生在当地密西西比州 1 附近。服务器上的问题是,在本地即时发生的相同调用需要 6-10 秒才能在服务器上开始停止。
到目前为止,我阅读的评论和答案似乎处理了 SQL 查询是在索引数据库上完成的单一查询的假设/场景。完成的查询由 WP_Query 类执行,并且(恕我直言)不是简单的查询。
当我说“ajax 调用”时,我不仅仅指过程的一部分。我的意思是从单击按钮到附加 HTML 的时间。
该站点的服务器上除了我之外没有其他用户;它还不是一个公共站点。