修復巨大的 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。 抱歉,當他們拍攝時,我沒有受到啟發去拍攝屏幕截圖 GB 1.2。 即便如此,對於包含以下編程操作的表來說,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”將沒有問題。

對技術充滿熱情,我很高興寫 StealthSettings.com 自 2006 年起。我在作業系統方面擁有豐富的經驗: 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!
    Lige et spørgsmål på falde rebet denne 表“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

    希爾森
    網易

    回复
發表評論