首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Wordpress缓存SQL查询

Wordpress缓存SQL查询
EN

Stack Overflow用户
提问于 2017-07-03 12:26:29
回答 2查看 628关注 0票数 0

我的wordpress主题中有很多sql查询,例如,在最后6篇文章中添加了20个sql查询。所以,通常在我的网站上至少有100到150次查询,而我的网站因为这个原因而加载得很晚。

我听说过transient_api,并试图用它缓存查询,但失败了。

这里是我最后一次添加的帖子代码:

代码语言:javascript
运行
复制
<?php
    $gostermeid = $gosterme;
    $kategoriid = $kategori;
    $catquery = new WP_Query( 'cat=:-'.$gostermeid.'&posts_per_page='.$kactane.'&post_type[]=post&post_type[]=galeri&post_type[]=video&blazersix_update_post_thumbnail_cache=true' );
    while($catquery->have_posts()) : $catquery->the_post();
            ?>
                <div class="post">
.
.
.

我试着把他们缓存成这样

代码语言:javascript
运行
复制
<?php
                $gostermeid = $gosterme;
             $kategoriid = $kategori;
             if ( false === ( $catquery = get_transient( 'lastaddedcache' ) ) ) 

$catquery = new WP_Query( 'cat=:-'.$gostermeid.'&posts_per_page='.$kactane.'&post_type[]=post&post_type[]=galeri&post_type[]=video&blazersix_update_post_thumbnail_cache=true' );
while($catquery->have_posts()) : $catquery->the_post();
set_transient( 'lastaddedcache', $catquery, 12 * HOUR_IN_SECONDS );


            ?>

在这段代码之后,在我的页面的第二次刷新中,我最后添加的帖子没有显示。我做错了什么?我怎样才能修正我的代码?

谢谢你帮忙!

EN

回答 2

Stack Overflow用户

发布于 2017-07-03 13:18:40

您的代码忽略了在设置后12小时内对$catquery值的更改。这就是缓存的含义。您最后添加的帖子将不会显示。

添加posts时,可能需要使缓存失效。这意味着您需要从代码路径中添加新帖子的某个位置进行delete_transient()

向现有数据系统添加缓存可能很困难,因为您必须容忍陈旧的数据,或者找到缓存需要失效的每个位置。缓存是计算机工程中的一个基本概念,部分原因在于它很难实现。

票数 0
EN

Stack Overflow用户

发布于 2017-07-03 13:28:16

为什么不使用W3超级缓存或类似的,并将其设置为缓存数据库查询和对象?它还将通过缩小资产和缓存整个站点及其html来帮助您。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44885586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档