修复巨大的 SQL 表:wp_actionscheduler_actions 和 wp_actionscheduler_logs [WooCommerce 提示]

WooCommerce 它已成为广泛使用的模块 网上商店. SEO,产品,库存管理,简洁直观的代码,简单的管理界面以及为Woo开发的成千上万的插件,只是其中的一些论据,当您考虑开发在线商店时就值得一试。

像任何 CMS 一样,Woo 也不例外,在与其他插件的各种使用或交互场景中可能发生的奇怪现象。 WordPress.
在资源服务器上 硬件 相当慷慨,我注意到 数据库服务 (mysqld的)开始需要近80-90%的RAM。 这是一个非常严重的问题,因为我只是不了解错误110的周期性来源(110:连接超时).
在仔细检查SQL流程时,我发现一个数据库有两个表,它们的容量非常大: wp_actionscheduler_actions si wp_actionscheduler_logs.

一般情况下 预定动作WooCommerce 动作调度程序 它们在执行后应自动删除。 这种情况并非总是会发生,并且它们被卡在wp_actionsscheduler_actions中,状态为: 失败, 取消, 有待完成.

在上图中,表格“wp_actionsscheduler“他们只有 刚刚超过15 MB。 抱歉,当他们拍摄时,我没有受到启发去拍摄屏幕截图 1.2 GB。 即便如此,对于包含以下编程操作的表来说,15 MB 已经相当大了 WooCommerce.
这些“肿胀”的表是由于 WP-Cron不会删除条目 身份为“失败“,”取消“和”完成”。 通常,这些条目应自动从数据库中删除。
计划的动作及其状态可以很容易地看到 WooCommerce →  Status →  预定行动.

如何清洁排水沟“失败“,”取消“和”完成“以 wp_actionscheduler_actions si wp_actionscheduler_logs

我们通过phpMyAdmin访问数据库,然后在SQL上依次执行命令行:

DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'canceled'
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'complete'
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'failed'

清除此表后,并不表示问题已解决。 就像我在上面说的那样,主要原因是出于各种原因而禁用了WP-Cron服务。 因此,具有“僵尸”状态的条目将不再被删除。
重要的是要知道,如果您有网上商店 WooCommerce,并通过插件连接到Facebook Shops“脸谱网 WooCommerce”,它会自动同步来自 WooCommerce 使用您的 Facebook 商店帐户。 他每 15 分钟就会做一次。 这些SQL条目如果不加控制,可能会得到几十万行”wc_facebook_regenerate_feed“在”wp_actionscheduler_actions“。

对于有大量订单的商店,此间隔是可以的,并且需要不断更新Facebook Shops产品的库存。 如果您仍然认为Facebook与商店之间的这些同步可以每24小时执行一次,那么下面的代码行会有所帮助。

打开主题的functions.php文件 WordPress / WooCommerce 您的商店在其上运行并添加:

add_filter( 'wc_facebook_feed_generation_interval', function(){ return HOUR_IN_SECONDS * 24; } );

在下面,我们可以将间隔设置为一周,以进行自动清洁:

add_filter( 'action_scheduler_retention_period', 'wpb_action_scheduler_purge' );
function wpb_action_scheduler_purge() {
 return WEEK_IN_SECONDS;
}

保存这些更改后,大型表“ wp_actionscheduler_actions”将没有问题。

作为科技爱好者,我从2006年开始在StealthSettings.com上愉快地撰写文章。我在操作系统方面有丰富的经验,包括macOS、Windows和Linux,还熟悉编程语言和博客平台(WordPress),以及在线商店平台(WooCommerce、Magento、PrestaShop)。

如何以 » Curiosity » 修复巨大的 SQL 表:wp_actionscheduler_actions 和 wp_actionscheduler_logs [WooCommerce 提示]

1 个关于“修复巨大 SQL 表:wp_actionscheduler_actions 和 wp_actionscheduler_logs [WooCommerce 尖端]”

  1. @Stealth
    德为 hjælpen。 Du redder min dag og 商店。 Jeg opdagede først dette efter et nedbrud af min 网上商店。 Mange 插件 er begyndt at dumpe deres output i den tabel og det fylder ... Wooping 9.2GB tabel fik min host til at opgive hans ellers Fine opp-tid. Nutrimmer jeg med den Fine kode!
    搜索框的链接显示在“wpb_action_scheduler_purge”选项卡中。 default 我 db'en eller skal jeg evt. 重命名 den til noget i min (default hedder min db ikke 'wp_') eller er det måske en funktion?
    Tak for hjælpen og den superfine artikel

    希尔森
    网易

    回复
发表评论