巨大な SQL テーブルを修正: wp_actionscheduler_actions および wp_actionscheduler_logs [WooCommerce チップ]

WooCommerce 広く使用されているモジュールになっています のオンラインショップ. SEO、製品と在庫の管理、クリーンで直感的なコード、シンプルな管理インターフェイス、そして Woo 用に開発された何千ものプラグインは、オンライン ストアの開発を考えるときにチャンスに値する理由のほんの一部にすぎません。

他のCMSと同様に、Wooも例外ではなく、さまざまな使用法や他のプラグインとの相互作用のシナリオで発生する可能性があります。 WordPress.
リソースサーバー上 ハードウェア かなり寛大で、私はそれに気づきました データベースサービス (mysqldを)RAMのほぼ80〜90%を必要とし始めます。 エラー110が定期的にどこから来るのか理解できなかったので、かなり深刻な問題です(110:接続がタイムアウトしました).
SQLプロセスを詳しく調べたところ、データベースにはかなり大きなボリュームを持つXNUMXつのテーブルがあることがわかりました。 wp_actionscheduler_actions si wp_actionscheduler_logs.

正常に スケジュールされたアクションWooCommerce アクションスケジューラ 実行後に自動的に削除する必要があります。 これは常に発生するとは限らず、次のステータスでwp_actionsscheduler_actionsでスタックします。 失敗した, キャンセル, ペンディング または コンプリート.

上の画像では、テーブル "wp_actionsスケジューラー「彼らは持っているだけです 15MB強。 彼らが持っていたときにスクリーンショットを撮る気にならなかったのは残念です 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 ショップに接続されています。Facebookの WooCommerce」の製品を自動的に同期します。 WooCommerce Facebook ショップアカウントで。 そして彼はそれを15分ごとに行います。 これらの SQL エントリが制御されていない場合、数十万行が取得される可能性があります。」wc_facebook_regenerate_feed「で」wp_actionscheduler_actions"

この間隔は、注文数が多く、FacebookShops製品の在庫を常に更新する必要がある店舗では問題ありません。 Facebookとストア間のこれらの同期が24時間にXNUMX回実行できるとまだ考えている場合は、以下のコード行が役立ちます。

テーマのfunctions.phpファイルを開きます WordPress / WooCommerce ストアを実行する上で以下を追加します。

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

以下では、自動クリーニングの間隔をXNUMX週間に設定できます。

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

これらの変更を保存すると、「wp_actionscheduler_actions」の巨大なテーブルで問題が発生することはありません。

テクノロジーに情熱を持っており、喜んで記事を書いています StealthSettings2006 年から .com を運営しています。私はオペレーティング システムに関して豊富な経験を持っています。 macOS, Windows シ Linuxだけでなく、プログラミング言語やブログ プラットフォームでも使用できます (WordPress) およびオンライン ストアの場合 (WooCommerce、Magento、PrestaShop)。

» Curiosity » 巨大な SQL テーブルを修正: wp_actionscheduler_actions および wp_actionscheduler_logs [WooCommerce チップ]

「巨大な SQL テーブルを修正する: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce チップ]"

  1. @Stealth
    hjælpenのために取ってください。 Du redder min dagogショップ。 Jegopdagedeførstdetteefteretnedbrud af minwebshop。 ダンプデレス出力でプラグインを管理します。 ニュートリマージェグメッドデンファインコード!
    Ligeetspørgsmålpåfalderebetdennetabel“ wpb_action_scheduler_purge” er det en default i db'en eller skal jegevt。 den til noget i min(default hedder min db ikke'wp _ ')ellererdetmåskeenfunktion?
    hjælpenogden超微細アーティケルのためのTak

    ヒルセン
    通信網

    返信
コメント