巨大な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。 それでも、WooCommerceのスケジュールされたアクションを含むテーブルには15MBで十分です。
これらの「膨張した」テーブルは、その結果として生じます 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にオンラインストアがあり、プラグインを介してFacebookショップに接続されている場合は、それを知っておくことが非常に重要です。WooCommerceのためのFacebook"、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」の巨大なテーブルで問題が発生することはありません。

方法 » 好奇心 » 巨大なSQLテーブルを修正:wp_actionscheduler_actions&wp_actionscheduler_logs [WooCommerceのヒント]

テクノロジーに情熱を注いでおり、オペレーティングシステムに関するチュートリアルをテストして作成するのが好きです。 macOS, Linux, Windows、 約 WordPress、WooCommerceおよびLEMP Webサーバーの構成(Linux、NGINX、MySQLおよびPHP)。 書く StealthSettings2006年から.com、そして数年後、私はiHowTo.Tipsチュートリアルとエコシステム内のデバイスに関するニュースを書き始めました。 Apple: iPhone、iPad、 Apple ウォッチ、HomePod、 iMac, MacBook、AirPodsおよびアクセサリ。

「巨大なSQLテーブルの修正:wp_actionscheduler_actions&wp_actionscheduler_logs [WooCommerceのヒント]」に関する1つの考え

  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

    ヒルセン
    通信網

    返信

コメント