Príliš veľké wp_woocommerce_sessions v databáze [How-to Fix]

Ako som povedal v iných článkoch, WooCommerce je robustnejší a flexibilnejší modul, ktorý je schopný zmeniť WordPress na a Ideálny internetový obchod pre firmu na začiatku.

Pre internetový obchod so skromnou veľkosťou je možné Wocommerce vkĺznuť na a “zdieľaný hosting”, Byť schopný vydržať ľahké a 5 000 produktov / 100 objednávok, ak použitá téma nespotrebuje veľa zdrojov a nezneužíva iné moduly (doplnky).

Optimalizácia zdrojového kódu Z témy (témy WP), modulov (doplnky WP) a Optimalizácia databázy Existujú tiež dva aspekty, ktoré musíme vziať veľa.

Všimol som si predchádzajúce dni, keď sa začína internetový obchod skromných rozmerov na konzumáciu mnohých zdrojov RAM a CPU na vyhradenom serveri veľkorysý. Táto vysoká spotreba zdrojov viedla k predvoleniu “načítať” Zvýšil sa na serveri a veľký čas na nabíjanie stránok večerného obchodu.

Keď si všimneme neopodstatnené veľké zaťaženie na webovom serveri, je dobré preskúmať príčiny pred prijatím akéhokoľvek opatrenia.

V databáze som si všimol, že tabuľka “wp_woocommerce_sessions” Je to obrovské. Bolo to viac ako 6 GB. Obrovský objem pre tabuľku z databázy, ktorá normálne nepresiahla celkom 100 MB.

Tento este wp_woocommerce_ssionals?

Ako dokážeme cítiť z jeho mena, tabuľka “wp_woocommerce_sessions” Obsahuje relácie PHP (Relácie PHP).
Tieto relácie sú akcie používateľov na webe (alebo webových robotoch) a najčastejšie dosahujú databázu prostredníctvom súborov cookie. V WP_WOOCommerce_sessions sa ukladajú údaje o produktoch umiestnených používateľmi v nákupnom košíku, kupónoch, prepravných poplatkoch, údajoch o zákazníkoch a mnohých ďalších informáciách týkajúcich sa procesu objednávky produktu.

Tieto relácie sa vytvárajú, dokonca aj to, či je užívateľ zaregistrovaný na webe, a zvyčajne musí vypršať a automaticky odstrániť.

Bohužiaľ sa vždy nestane, že tieto relácie sú odstránené av niektorých prípadoch zostávajú natrvalo uložené v WP_woocommerce_sessions, vďaka čomu je tabuľka dosiahnutá veľký objem.

Ako utierať stôl wp_woocommerce_sessions Din SQL?

1. Ideme do Prístrojová doskaMokraStavNáradie (tab).

2. Ideme dolu na možnosť “Jasné zákaznícke relácie“. Opatrne! Vymazanie relácií klientov zahŕňa vymazanie všetkých produktov, ktoré umiestnili v nákupnom košíku. Ak sú pri odstraňovaní týchto relácií zákazníci, ktorí majú v koši výrobky, zmiznú a prípadná objednávka nebude dokončená.

3. Kliknite “Vyčistiť” a potvrdenie operácie.

V tejto dobe tabuľka “wp_woocommerce_sessions” Je prázdny, takže všetky nákupné stretnutia zákazníkov boli odstránené.

Tento problém sa zďaleka nevyrieši. Tabuľka SQL WP_WOOCOMMERCE_SESSIONS v nej zhromaždí údaje a predvolene získa proporcie, čo nie je žiaduce.

Ako urobíme zákaznícke stretnutia natrvalo v WooCommerce – wp_woocommerce_sessions?

Ukázal som vyššie, ako je možné vyprázdniť tabuľku “wp_woocommerce_sessions” Z databázy, ale problém sa objaví opäť po niekoľkých dňoch, keď sa zhromaždia klientske relácie.

Pred WooCommerce 2.5 boli zákaznícke relácie zachytené prostredníctvom cookie a potom sa uložili do tabuľky WordPress “wp_options“.
Pre väčšie obchody táto metóda často viedla k katastrofám. “wp_options” Byť životne dôležitou tabuľkou WordPress, ktorú používajú všeobecné možnosti a nastavenia. Manuálna identifikácia a vymazanie klientskych relácií uložených v wp_options Nebola to ľahká práca.
Výkon WooCommerce nebol najlepší a škálovateľnosť v priebehu času bola citlivým bodom.

Založením spoločnosti WooCommerce 2.5 v roku 2015 zaviedli vývojári spoločnosti WooCommerce nový manipulačný a úložný systém založený na WooCommerce. WP Sessions Manager. Tento systém viedol k vzhľadu wp_woocommerce_sessions. Špeciálna tabuľka pre zákaznícke relácie, ktorá v databáze neinteraguje s inými tabuľkami. V prípade veľkých chýb by straty mali byť minimálne.

Z toho, čo som si všimol, online obchody spustené pred WooCommerce 2.5 a ktoré v priebehu času dostávali neustále aktualizácie, majú určité problémy týkajúce sa automatického vymazania klientskych relácií. Je to s najväčšou pravdepodobnosťou o chybe na novšej verzii doplnku WooCommerce 2.5 alebo doplnku WordPress / WooCommerce, ktorý sa s aktualizáciami nedodržal.

V mojom prípade to bol konflikt s funkciou pridanou v súbore functions.php témy a ktorá zabrániť automatickému vymazaniu po vypršaní relácií woocommerce_sessions.
Ak máte taký problém, musíte starostlivo preskúmať všetky možné príčiny. Chyba SQL, prenasledovanie SQL, práca Cron, konflikty s inými doplnkami a v neposlednom rade skontrolujte svoje zmeny v kóde v priebehu času.

Videl som, že WooCommerce ponúka iba 29 dolárov, doplnok, ktorý je schopný spravovať zákazníkov. “Čistý košík a relácie pre WooCommerce“. Okrem naprogramovaného vymazania relácií má modul niekoľko nástrojov, ktoré by mohli byť užitočné.

Jednoduchšia možnosť naprogramované vymazanie a “woocommerce_sessions” v jednom dni intervalov, je posun s ďalším kódom v 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();
}

Zanechajte komentár, ak potrebujete pomoc alebo máte iné riešenie.

Vášnivý pre technológiu píšem s potešením na serveri Stealthsetts.com, počnúc rokom 2006. Mám bohaté skúsenosti v operačných systémoch: MacOS, Windows a Linux, ale aj v programovacích jazykoch a platformách blogov (WordPress) a pre internetové obchody (WooCommerce, Magento, Presashop).

Domov Váš zdroj IT návodov, užitočné tipy a správy. Príliš veľké wp_woocommerce_sessions v databáze [How-to Fix]

1 myslel na „Príliš veľké wp_woocommerce_sessions v databáze [How-to Fix]”

Zanechajte komentár