大きすぎます wp_woocommerceデータベース内の _sessions [修正方法]

他の記事で言ったように、 WooCommerce ますます堅牢かつ柔軟なモジュールとなり、さまざまな変更が可能になります。 WordPress で スタートアップ企業に最適なオンラインストア.

サイズのオンラインストアの場合 modeステ WooCommerce 使用するテーマが多くのリソースを消費せず、他のモジュール (プラグイン) を乱用しない場合は、「共有ホスティング」で実行することもでき、5.000 日あたり 100 個の製品 / XNUMX 個の注文を簡単にサポートできます。

ソースコードの最適化 (WP テーマ)、モジュール (WP プラグイン) から データベースの最適化 また、非常に注意が必要な XNUMX つの側面もあります。

先日、サイズのオンラインストアがあることに気づきました。 mode始まる 非常に多くの RAM リソースを消費し、 CPU 専用サーバーで 寛大です。 このリソースの大量消費により、サーバーの「負荷」が増加し、オナイン ストア ページの読み込み時間が長くなります。

Web サーバーに不当に高い負荷がかかっていることに気付いた場合は、対策を講じる前に原因を慎重に調査することをお勧めします。

データベースでは、テーブル "wp_woocommerce_sessions「それは巨大です。 6GB以上ありました。 通常は合計で 100 MB を超えないデータベース内のテーブルの巨大なボリューム。

wp_とは何ですかwoocommerce_セッション ?

彼の名前から推測できるように、テーブル "wp_woocommerce_sessions”PHP セッションを含む (PHPセッション).
これらのセッションは Web サイト ユーザー (または Web ロボット) のアクションであり、ほとんどの場合、Cookie を通じてデータベースに到達します。 wp_ でwoocommerce_sessions には、ユーザーがショッピング カートに入れた製品に関するデータ、クーポン、送料、顧客データ、および製品の注文プロセスに関連するその他の多くの情報が保存されます。

これらのセッションは、ユーザーがサイトに登録されているかどうかに関係なく作成され、通常は期限切れになり、しばらくすると自動的に削除されます。

残念ながら、これらのセッションは常に削除されるわけではなく、場合によっては wp_ に永続的に保存されたままになることがあります。woocommerce_sessions により、このテーブルはかなり大きなボリュームに達します。

テーブルを削除するにはどうすればよいですか wp_woocommerce_sessions SQLから?

1。 に行きます ダッシュボード →  WooCommerce →  Status: →  ツール (タブ)。

2. オプションまでスクロールします "明確な顧客セッション「。 注意してください! 顧客セッションを削除することは、ショッピング カートに入れたすべての製品を削除することを意味します。 これらのセッションを削除しているときにカートに商品を持っている顧客がいる場合、それらは消え、可能なオンライン注文は完了しません。

3. 「クリア」をクリックして操作を確認します。

この時点では、テーブル「wp_woocommerce_sessions" が空であるため、すべての顧客のショッピング セッションが削除されました。

問題は解決には程遠い。 SQL テーブル wp_woocommerce_sessions はデータを再度収集し、デフォルトでは再び比率を取得しますが、これは望ましくありません。

クライアントセッションが永続的に保存されるのを防ぐにはどうすればよいですか? WooCommerce – wp_woocommerce_sessions?

上でテーブル「wp_」がどのように作成されるかを示しました。woocommerce_sessions" をデータベースから削除しますが、数日後にクライアント セッションが再び集まると、問題が再び発生します。

前 WooCommerce 2.5、クライアント セッションは Cookie を通じてキャプチャされ、後でテーブルに保存されます。 WordPress 「wp_options"
大規模な店舗の場合、この方法はしばしば災害につながります。 「Wp_options」の重要なテーブルであること WordPress、一般的なオプションと設定で使用されます。 に保存されているクライアントセッションを特定して手動で削除する wp_options それは簡単な仕事ではありませんでした。
パフォーマンス WooCommerce それらは最高のものではなく、長期にわたる拡張性は微妙な点でした。

打ち上げと WooCommerce 2.5 年の 2015、開発者 WooCommerce 新しいセッション処理およびストレージ システムを導入しました WooCommerceに基づいて、 WPセッションマネージャー. このシステムが登場したのは wp_woocommerce_sessions. データベース内で他のテーブルと対話しないクライアント セッション専用のテーブル。 重大なエラーが発生した場合、損失は最小限に抑える必要があります。

私が観察したところによると、オンラインストアは以前に開設されました WooCommerce 2.5 は、長期間にわたって継続的に更新を受けてきましたが、クライアント セッションの自動削除に関していくつかの問題があります。 おそらく、新しいバージョンで発生したバグです。 WooCommerce 2.5 またはプラグイン WordPress / WooCommerce 更新についていけていない。

私の場合、ファイルに追加された関数との競合でした functions.php テーマの、そしてどれ からのセッションの期限切れ後の自動削除を防ぎます woocommerce_sessions.
このような問題に直面している場合は、考えられるすべての原因を注意深く調査する必要があります。 SQLエラー、SQL権限、Cronジョブは、他のプラグインと競合します。最後に、コードに加えられた変更を時間の経過とともに確認してください。

私はそれを観た WooCommerce 顧客セッションを管理できるプラグインをわずか 29 ドルで提供します。 」カートとセッションをクリアする WooCommerce「。 もちろん、セッションのスケジュールされた削除に加えて、モジュールにはあなたを助けることができるいくつかのツールがあります。

よりシンプルなオプション 「の予定された削除woocommerce_sessions」XNUMX日間隔では、次のコードで利用できます。 functions.php:

// clean cart every day
if (!wp_next_scheduled('cron_wc_clean_cart')) {
    wp_schedule_event( time(), 'daily', 'cron_wc_clean_cart' );
}

add_action ( 'cron_wc_clean_cart', 'wc_clean_session_cart' );
function wc_clean_session_cart() {
    global  $wpdb;

    $wpdb->query( "TRUNCATE {$wpdb->prefix}woocommerce_sessions" );
    $wpdb->query( "DELETE FROM {$wpdb->usermeta} WHERE meta_key='_woocommerce_persistent_cart_" . get_current_blog_id() . "';" );
    wp_cache_flush();
}

ヘルプが必要な場合、または別の解決策がある場合は、コメントを残してください。

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

» 微調整とハック » 大きすぎます wp_woocommerceデータベース内の _sessions [修正方法]

「大きすぎるwp_」についての1件のフィードバックwoocommerceデータベース内の _sessions [修正方法]」

  1. 500mbのデータを削除する方法がなく、すべてを削除するために1000分あたりXNUMXmbの制限があり、すべてが再び完全に埋められます…。いくつかの解決策はありますか?

    返信
コメント