डेटाबेस में बहुत बड़े wp_woocommerce_sessions [कैसे ठीक करें]

जैसा कि मैंने अन्य लेखों में कहा, WooCommerce एक तेजी से मजबूत और लचीला मॉड्यूल है, जो बदलने में सक्षम है WordPress एक में एक स्टार्ट-अप व्यवसाय के लिए आदर्श ऑनलाइन स्टोर.

एक मामूली ऑनलाइन स्टोर के लिए, WooCommerce को "साझा होस्टिंग" पर चलाया जा सकता है, और आसानी से 5.000 उत्पादों / प्रति दिन 100 ऑर्डर का समर्थन कर सकता है, यदि उपयोग की गई थीम कई संसाधनों का उपभोग नहीं करती है और अन्य मॉड्यूल (प्लगइन्स) का दुरुपयोग नहीं करती है।

स्रोत कोड अनुकूलन (WP थीम्स), मॉड्यूल (WP प्लगइन्स) और . से डेटाबेस अनुकूलन ऐसे दो पहलू भी हैं जिनके बारे में हमें बहुत सावधान रहने की आवश्यकता है।

मैंने दूसरे दिन देखा कि एक मामूली ऑनलाइन स्टोर शुरू हो रहा है बहुत अधिक RAM संसाधनों का उपभोग करने के लिए और CPU एक समर्पित सर्वर पर उदार। संसाधनों की इस उच्च खपत के कारण सर्वर पर "लोड" बढ़ गया और ऑनलाइन स्टोर पेजों का लोडिंग समय लंबा हो गया।

जब हम वेब सर्वर पर अनुचित रूप से उच्च भार देखते हैं, तो कोई भी कार्रवाई करने से पहले कारणों की सावधानीपूर्वक जांच करना अच्छा होता है।

डेटाबेस में मैंने देखा कि तालिका "wp_woocommerce_sessions"यह बहुत बड़ा है। इसमें 6 जीबी से अधिक था। एक डेटाबेस में एक तालिका के लिए एक बड़ी मात्रा जो सामान्य रूप से कुल 100 एमबी से अधिक नहीं होती है।

wp_woocommerce_sessions क्या है?

जैसा कि हम उनके नाम से अनुमान लगा सकते हैं, तालिका "wp_woocommerce_sessions"PHP सत्र शामिल हैं (पीएचपी सत्र).
ये सत्र साइट (या वेब रोबोट) के उपयोगकर्ताओं की कार्रवाइयाँ हैं और अधिकांश बार वे कुकीज़ के माध्यम से डेटाबेस तक पहुँचते हैं। wp_woocommerce_sessions में उपयोगकर्ताओं द्वारा शॉपिंग कार्ट में रखे गए उत्पादों के बारे में डेटा, कूपन, शिपिंग शुल्क, ग्राहक डेटा और उत्पाद ऑर्डरिंग प्रक्रिया से संबंधित कई अन्य जानकारी संग्रहीत की जाती है।

ये सत्र बनाए जाते हैं चाहे उपयोगकर्ता साइट पर पंजीकृत हो या नहीं और सामान्य रूप से स्वचालित रूप से समाप्त हो जाना चाहिए और थोड़ी देर बाद हटा देना चाहिए।

दुर्भाग्य से, यह हमेशा ऐसा नहीं होता है कि ये सत्र हटा दिए जाते हैं और कुछ मामलों में वे स्थायी रूप से wp_woocommerce_sessions में संग्रहीत रहते हैं, जिससे यह तालिका काफी बड़ी हो जाती है।

टेबल को कैसे डिलीट करें wp_woocommerce_sessions एसक्यूएल से?

1. करने के लिए जाओ डैशबोर्ड  →  WooCommerce →  स्थिति →  टूल्स (टैब)।

2. विकल्प पर स्क्रॉल करें "ग्राहक सत्र साफ़ करें". सावधान! ग्राहक सत्रों को हटाने का अर्थ है शॉपिंग कार्ट में रखे गए सभी उत्पादों को हटाना। यदि इन सत्रों को हटाते समय ऐसे ग्राहक हैं जिनके पास कार्ट में उत्पाद हैं, तो वे गायब हो जाएंगे और संभावित ऑनलाइन ऑर्डर पूरा नहीं होगा।

3. "क्लियर" पर क्लिक करें और ऑपरेशन की पुष्टि करें।

इस समय "wp_woocommerce_sessions" तालिका खाली है, इसलिए सभी ग्राहक खरीदारी सत्र हटा दिए गए हैं।

समस्या सुलझने से कोसों दूर है। wp_woocommerce_sessions SQL तालिका इसमें फिर से डेटा एकत्र करेगी और डिफ़ॉल्ट रूप से यह फिर से अनुपात प्राप्त करेगी, जो वांछनीय नहीं है।

हम ग्राहक सत्रों को WooCommerce में स्थायी रूप से संग्रहीत होने से कैसे रोक सकते हैं - wp_woocommerce_sessions?

हमने ऊपर दिखाया कि कैसे "wp_woocommerce_sessions" तालिका को डेटाबेस से खाली किया जा सकता है, लेकिन समस्या कुछ दिनों के बाद फिर से दिखाई देगी जिसमें ग्राहक सत्र फिर से इकट्ठा होंगे।

WooCommerce 2.5 से पहले, ग्राहक सत्रों को कुकीज़ के माध्यम से कैप्चर किया जाता था और फिर टेबल पर सहेजा जाता था। WordPress "wp_options".
बड़ी दुकानों के लिए, इस पद्धति से अक्सर आपदाएँ आती हैं। "डब्ल्यूपी_options"की महत्वपूर्ण तालिका होने के नाते WordPress, सामान्य विकल्पों और सेटिंग्स द्वारा उपयोग किया जाता है। में संग्रहीत क्लाइंट सत्रों को पहचानना और मैन्युअल रूप से हटाना wp_options यह आसान काम नहीं था।
WooCommerce का प्रदर्शन सबसे अच्छा नहीं था, और समय के साथ मापनीयता एक संवेदनशील बिंदु था।

2.5 में WooCommerce 2015 के लॉन्च के साथ, WooCommerce डेवलपर्स ने एक नया WooCommerce सत्र हैंडलिंग और स्टोरेज सिस्टम पेश किया है, जिसके आधार पर WP सत्र प्रबंधक. इस प्रणाली ने उद्भव का नेतृत्व किया wp_woocommerce_sessions. क्लाइंट सत्रों के लिए एक समर्पित तालिका, जो डेटाबेस में अन्य तालिकाओं के साथ सहभागिता नहीं करती है। बड़ी त्रुटियों के मामले में, नुकसान न्यूनतम होना चाहिए।

मैंने जो देखा है, WooCommerce 2.5 से पहले लॉन्च किए गए ऑनलाइन स्टोर और जिन्हें समय के साथ लगातार अपडेट प्राप्त हुए हैं, उनमें क्लाइंट सत्रों के स्वचालित विलोपन के साथ कुछ समस्याएं हैं। सबसे अधिक संभावना है कि यह एक बग है जो WooCommerce 2.5 के नए संस्करण या एक प्लगइन पर दिखाई दिया WordPress / WooCommerce जो अपडेट के साथ नहीं रहा।

मेरे मामले में यह फ़ाइल में जोड़े गए फ़ंक्शन के साथ एक संघर्ष था functions.php विषय की, और जो से समाप्त होने वाले सत्रों के समय के बाद स्वत: विलोपन को रोकता है woocommerce_sessions.
यदि आप ऐसी समस्या का सामना कर रहे हैं तो आपको सभी संभावित कारणों की सावधानीपूर्वक जांच करने की आवश्यकता है। एसक्यूएल त्रुटि, एसक्यूएल अनुमतियां, क्रॉन जॉब, अन्य प्लगइन्स के साथ संघर्ष और अंतिम लेकिन कम से कम समय के साथ कोड में आपके द्वारा किए गए परिवर्तनों की जांच न करें।

मैंने देखा कि WooCommerce केवल $ 29 के लिए सक्षम प्लगइन प्रदान करता है adminतनाव ग्राहक सत्र। "WooCommerce के लिए कार्ट और सत्र साफ़ करें". बेशक, सत्रों के निर्धारित विलोपन के अलावा, मॉड्यूल में कई उपकरण हैं जो आपकी मदद कर सकते हैं।

एक आसान विकल्प अनुसूचित विलोपन "woocommerce_sessions"एक दिन के अंतराल पर", में निम्नलिखित कोड के साथ उपलब्ध है 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();
}

अगर आपको मदद चाहिए या कोई अन्य समाधान है तो एक टिप्पणी छोड़ दें।

कैसे करें » Tweaks और भाड़े » डेटाबेस में बहुत बड़े wp_woocommerce_sessions [कैसे ठीक करें]

प्रौद्योगिकी के बारे में भावुक, मुझे ऑपरेटिंग सिस्टम के बारे में ट्यूटोरियल का परीक्षण और लिखना पसंद है macOS, Linux, Windows, के विषय में WordPress, WooCommerce और LEMP वेब सर्वर को कॉन्फ़िगर करें (Linux, एनजीआईएनएक्स, माईएसक्यूएल और पीएचपी)। मैं लिखता हूँ StealthSettings2006 से .com, और कुछ साल बाद मैंने iHowTo.Tips ट्यूटोरियल और पारिस्थितिकी तंत्र में उपकरणों के बारे में समाचार लिखना शुरू किया Apple: iPhone, आईपैड, Apple देखो, होमपॉड, iMac, MacBook, AirPods और सहायक उपकरण।

1 ने "डेटाबेस में बहुत बड़े wp_woocommerce_sessions [कैसे-ठीक करें]" पर विचार किया

  1. मेरे पास 500 एमबी वजन वाले डेटा को हटाने का कोई तरीका नहीं है और मेरे पास 1000 एमबी प्रति मिनट की सीमा है ताकि सब कुछ पूरी तरह से फिर से भर जाए ... कुछ समाधान?

    जवाब दें

एक टिप्पणी छोड़ दो