分享各种网络资源
是我乃至整个互联网的精髓所在
 您目前所在位置: 站点首页 » WordPress » 代码 » 数据库中成千上万的”transient”改如何处理
+

数据库中成千上万的”transient”改如何处理

【文章目录】

今天在WordPress论坛上面看到乐一个名为Database overrun with 1000’s of “transient” feed, dash, timeouts, etc (3 posts)的文章,进去看了一下之后,发现这个文章正好是我需要的。

简单的说,就是数据库因为时间长了,会产生很多过时的缓存文件,可能是导航缓存,可能是菜单缓存等等,如果你发现自己的数据库正在不断增加,体积组件增大的话,那么你有必要考虑一下可能就是这个问题了。

此类情况一般显示为以下的情况:

  • _transient_feed_mod_ (long string of letters/numbers)
  • _transient_timeout_dash_ (long string of letters/numbers)
  • _transient_timeout_feed_ (long string of letters/numbers)
  • _site_transient_timeout_browser_ (long string of letters/numbers)

也就是在你的数据库中的wp_options中会存在以上类似的条目,数量如果不是很多,那么可能就是正常的,如果数量非常多,并且很多类似timeout的文字出现,那么证明,你该清清你的数据库了。

在进行下面任何一个操作之前请一定并且确定你备份过你的数据库,如果觉得不放心,备份整个站点也是可以的,如果因为操作出现问题,丢失数据,我只能说,很抱歉了。

那么如何清理呢?这里我就以阿里云为例说说该如何处理:

进入数据库

首先我们需要做的就是进入数据库,那么如何进入数据库呢?
数据库中成千上万的”transient”改如何处理-BanYuner

点击管理就可以进入控制台了,进入控制台之后再按照下面的图片进入数据库管理:
数据库中成千上万的”transient”改如何处理-BanYuner

那么点击管理之后我们就可以看到数据库登陆界面了,我们进去就可以了。

数据库查询

进入数据库之后,我们需要做的就是开始查询我们需要删除的数据了,同样的,按照下面的图片以及文字进行操作:
数据库中成千上万的”transient”改如何处理-BanYuner
数据库中成千上万的”transient”改如何处理-BanYuner

点击确定之后,你就可以看到结果了,鉴于我已经删除了,所以暂时没有这个文件。大家看到了文件之后,如果符合上面的文件名格式的话,那么可以考虑删除了。

问题原因

为什么会出现这样的问题,我个人也不知道,国外的貌似也讨论的很多,我这里引用一段文字,大家能看明白的就看,看不明白的尽量能去理解就好了:

Wordpress uses DB entries called _transients to cache certain data. Cached entries are by default, things like RSS info, when cron last run, etc. If you use a plugin like Google Analytics Dashboard (GAD hereafter) though, you also get cached data relating to that. Unfortunately, either due to a bug in Wordpress, or something left out of GAD, this cached info doesn’t seem to be deleted after it’s designated expiration time/date (_transients have a set expiration time, but they don’t seem to matter for GAD set transients).

这位用户,觉得可能是因为WordPress的bug或者是GBA造成的,但是确切原因他自己也不知道。

同样的,这里附上一段代码,我目前还没有尝试使用过,据说可以自动删除过期的这些文件,但是不一样有用,甚至可能造成数据库崩溃等等。如果你是一个折腾的朋友,那么请一定一定一定备份数据库。

add_action( 'wp_scheduled_delete', 'delete_expired_db_transients' );

function delete_expired_db_transients() {

    global $wpdb, $_wp_using_ext_object_cache;

    if( $_wp_using_ext_object_cache )
        return;

    $time = isset ( $_SERVER['REQUEST_TIME'] ) ? (int)$_SERVER['REQUEST_TIME'] : time() ;
    $expired = $wpdb->get_col( "SELECT option_name FROM {$wpdb->options} WHERE option_name LIKE '_transient_timeout%' AND option_value < {$time};" );

    foreach( $expired as $transient ) {

        $key = str_replace('_transient_timeout_', '', $transient);
        delete_transient($key);
    }
}

上面的代码直接添加到functions.php中即可。

关注我们 打赏 分享此文
微信扫码,关注我们
扫码,支持我
数据库中成千上万的”transient”改如何处理
支付宝(点击图片切换)
扫码,支持我
数据库中成千上万的”transient”改如何处理
微信(点击图片切换)
扫码,手机看
数据库中成千上万的”transient”改如何处理

个人评价:┃草根博主┃站点无技术含量┃文章内容不够吸引人┃转载内容随处可见┃资源均来自网络┃ 分享是我的宗旨,也是这个站点存在意义,分享的东西你现在可能不需要,但是我相信只要在某个时间你需要的时候能在这里找到,那么我就是成功的

 相关推荐

换一批 换一批
  • WordPress搜索只显示标题中含有关键字的文章

    WordPress搜索只显示标题中含有关键字的文章

    今天在知更鸟博客上面看到了这篇文章,整体来说,这个功能在某些方面还是比较有用的,如果说通过标题中的关键字来寻找文章的 ...

    点击查看
  • 如何给WordPress站点添加wow.js效果

    如何给WordPress站点添加wow.js效果

    今天折腾了以下这个东西,为什么会折腾这个东西呢,因为之前经常逛知更鸟博客,后来一次更新之后,发现知更鸟博客多了一种加 ...

    点击查看
  • 如何在WordPress评论中显示更多HTML标签

    如何在WordPress评论中显示更多HTML标签

    我见过很多站点,都可以在评论里面添加各种标签,什么自己加粗,然后添加图片,添加链接等等,当时我个人觉得可能并不适合我 ...

    点击查看
  • WordPress显示一年前当天的文章

    WordPress显示一年前当天的文章

    最开始看到这个功能是在112博客,那个时候看到这个功能的第一感觉可能就是觉得,这个功能不是很实用,可能会增加SQL语句的查 ...

    点击查看
  • 给你的WordPress站点添加一个打印按钮

    给你的WordPress站点添加一个打印按钮

    这个功能很久之前就已经在知更鸟博客上面看到了,但是一直没有想过是什么原理,但是今天无意间发现了一个方法,目前觉得还是 ...

    点击查看
  • WordPress显示一周热评

    WordPress显示一周热评

    WordPress站点如何显示一周热评,我相信还是有很多人都想要知道的,那么这里就简单的说说实现方法了。

    点击查看
  • WordPress 限定显示评论者链接的输出

    WordPress 限定显示评论者链接的输出

    最近从bigfa的相关站点看到了这个更新内容,我个人觉得还是很有用的,对于一些广告用户还是有一定的作用的,毕竟有些时候, ...

    点击查看
  • WordPress文章段落间插入广告

    WordPress文章段落间插入广告

    很久之前就已经在留意这个功能了,但是一直没有找到相关的解决办法,今天我算是找到了这个相关代码。使用这个功能对于我们宣 ...

    点击查看
  • 最轻便的复制页面内容到剪切板的JS:clipboard.js

    最轻便的复制页面内容到剪切板的JS:clipboard.js

    今天早些时候在水煮鱼博客看到了这篇文章,我一开始是想要用到代码方面的,毕竟代码很多时候都是直接复制编辑的,但是后来想 ...

    点击查看
  • WordPress前台显示站点有多少注册用户

    WordPress前台显示站点有多少注册用户

    虽然我的站点目前已经关闭了注册,所有已经注册过的用户已经清理完毕了,这里说声抱歉。那么今天这个文章就是给大家一个方法 ...

    点击查看
  • WordPress添加一个底部漂浮栏

    WordPress添加一个底部漂浮栏

    站点底部添加一个通知栏的作用是起到一个通知或者说增加PV的作用,但是很多时候我们都知道,这种通知可能被人觉得很反感,但 ...

    点击查看
  • WordPress避免手残导致文章意外发布

    WordPress避免手残导致文章意外发布

    有些时候,我们编辑好了文章,但是我们可能并不想发布,但是很多时候,我们就是手残,也就是误发布了,这种事情可能对于博客 ...

    点击查看

  目前有 0 条评论 其中:访客: 0 条, 博主: 0 条

数据库中成千上万的”transient”改如何处理
评分: 9 + 6 =
  • 昵称 (必填)  
  • 邮箱 (必填)
  • 网址 (选填)