Php WordPress用户查询速度慢,超过7000个用户

Php WordPress用户查询速度慢,超过7000个用户,php,mysql,wordpress,performance,lazy-loading,Php,Mysql,Wordpress,Performance,Lazy Loading,我几乎完成了WordPress网站的建设,而启动过程中遇到的主要问题是执行用户查询需要很长时间 我已经在浏览器、php和gziping中启用了缓存,还使用了W3 Total cache插件,并尝试了其他各种缓存插件,但收效甚微 还提高了php.ini和wp config中的超时时间和内存 我遇到问题的主页只是主页,其他两个排名页面也很慢 我理解为什么(查询7000多个用户),但我知道没有办法做到这一点 那么,有没有一种方法可以将主查询保存到json文件或全局数组中,或者在页面加载后懒散地加载

我几乎完成了WordPress网站的建设,而启动过程中遇到的主要问题是执行用户查询需要很长时间

我已经在浏览器、php和gziping中启用了缓存,还使用了W3 Total cache插件,并尝试了其他各种缓存插件,但收效甚微

还提高了php.ini和wp config中的超时时间和内存

我遇到问题的主页只是主页,其他两个排名页面也很慢

我理解为什么(查询7000多个用户),但我知道没有办法做到这一点

那么,有没有一种方法可以将主查询保存到json文件或全局数组中,或者在页面加载后懒散地加载查询?或任何其他可大幅减少页面加载时间/提高性能的解决方案


如果您有任何建议,我们将不胜感激。

您可以在瞬间存储html。将到期时间设置为
0
,并在每次更新列表时以编程方式删除瞬态,以便重新生成

示例代码:

function get_qb_list() {

    $qb_list = get_transient( 'qb_list' );

    if( false === $qb_list ) {

        $qb_list = 'HTML GOES HERE';

        set_transient( 'qb_list', $qb_list, 0 );
    }

    return $qb_list;

}

瞬态存储在wp选项表中。阅读有关瞬态API的更多信息。

您做错了。您不应该像这样一次将所有数据转储到一个页面上

即使您必须减少加载时间并使站点处于活动状态,也必须在并发用户数量增加时立即执行许多查询。我的猜测是数据库不会处理这样的流量


尝试将查询保存在一个中间表中,您可以更好地控制该表,并以位的形式获取数据。显示前50个项目,然后链接到下50个项目使用ajax或不使用ajax的Regalar pagintation,加载时间将缩短,并且在站点处于活动状态时不会出现问题。

谢谢您尝试。查询不会太慢。收集和返回输出甚至不慢。(好吧,3秒,速度不快,但这是一个4.9 MB的HTML文档。)客户端处理它的速度很慢。(对我来说是18秒)无论你在服务器端做什么来提高速度,你都需要一些智能客户端的东西。(比如不要一次下载和处理所有记录。)你有解决方案吗?我不知道WP,所以没有。我建议只加载你正在显示的数据。WP必须有寻呼机。我真的不知道如何做到这一点。。。这是我的代码。下面是修改后的代码,几行代码将使页面加载更快、更优雅。看一看,以便知道在成员资格的情况下需要从数据库中过滤哪些内容。这有点有效,但会破坏数据表。我能够让ajax工作,但现在它将所有播放器加载到同一页面上。我似乎使用了正确的选项来设置页面长度,甚至设置了一个选项,在json数组中只显示100个玩家。然而,它却把所有的人都吸引住了。有什么建议吗?非常感谢您的帮助