FIX HUGE SQL表:wp_actionscheduler_actions和wp_actionscheduler_logs [WooCommerce提示]

WooCommerce 它已成為廣泛使用的模塊 網上商店. (搜索引擎優化),產品,庫存管理,簡潔直觀的代碼,簡單的管理界面以及為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。 即使這樣,對於包含WooCommerce計劃的操作的表來說,15 MB也足夠。
這些“腫脹”的表是由於 WP-Cron不會刪除條目 身份為“失敗“,”取消“和”完成”。 通常,這些條目應自動從數據庫中刪除。
計劃的動作及其狀態可以很容易地看到 WooCommerce →  狀態 →  預定動作.

如何清潔排水溝“失敗“,”取消“和”完成“以 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上擁有在線商店,並且該商店通過插件“適用於WooCommerce的Facebook”,它將自動將WooCommerce產品與您的Facebook Shops帳戶同步。 他在大約15分鐘內完成了操作。 如果這些SQL條目不受控制,則可以得到數十萬行。wc_facebook_regenerate_feed“在”wp_actionscheduler_actions“。

對於有大量訂單的商店,此間隔是可以的,並且需要不斷更新Facebook Shops產品的庫存。 如果您仍然認為Facebook與商店之間的這些同步可以每24小時執行一次,那麼下面的代碼行會有所幫助。

打開運行商店的WordPress / WooCommerce主題的功能/ php文件,然後添加:

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”將沒有問題。

對技術充滿熱情,我喜歡測試和編寫有關操作系統的教程 macOS,Linux, Windows, 關於 WordPress、WooCommerce 和 LEMP Web 服務器配置(Linux、NGINX、MySQL 和 PHP)。 我寫在 StealthSettings.com 自 2006 年以來,幾年後我開始撰寫 iHowTo.Tips 教程和有關生態系統中設備的新聞 Apple: iPhone,iPad, Apple 手錶,HomePod, iMac, MacBook、AirPods 和配件。

1 關於“修復巨大的 SQL 表:wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tips]”的想法

  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

    希爾森
    網易

    回复

發表評論