Příliš velké WP_WOOCOMMERCE_SESSIONS v databázi [jak na to opravit]

Jak jsem řekl v jiných článcích, WooCommerce je robustnější a flexibilnější modul, který je schopen proměnit WordPress v a Ideální internetový obchod pro firmu na začátku.

Pro internetový obchod se skromnou velikostí může být WoCommerce válcován na a “Sdílený hosting”, schopnost lehce vydržet a 5 000 produktů / 100 objednávek aktuální, pokud použité téma nekonzumuje mnoho zdrojů a nezneužívá jiné moduly (pluginy).

Optimalizace zdrojového kódu Z tématu (témata WP), modulů (pluginy WP) a Optimalizace databáze Existují také dva aspekty, které musíme vzít hodně.

Všiml jsem si předchozích dnů, když začíná internetový obchod skromných rozměrů Konzumujte mnoho mnoha zdrojů RAM a CPU na dedikovaném serveru štědrý. Tato vysoká spotřeba zdrojů vedla k výchozímu “zatížení” Zvýšil se na serveru a velký čas na nabíjení stránek večerního obchodu.

Když si všimneme neopodstatněného velkého zatížení na webovém serveru, je dobré prozkoumat příčiny před provedením jakéhokoli opatření.

V databázi jsem si všiml, že tabulka “wp_woocommerce_sessions” Je to obrovské. Bylo to přes 6 GB. Obrovský objem pro tabulku z databáze, která normálně nepřesáhla celkem 100 MB.

Tento este wp_woocommerce_ssionals?

Jak můžeme cítit z jeho jména, tabulka “wp_woocommerce_sessions” Obsahuje relace PHP (PHP relace).
Tato relace jsou akce uživatelů na webu (nebo webových robotech) a nejčastěji se dotazují do databáze prostřednictvím souborů cookie. V WP_WOOCOMMERCE_SESSIOS jsou uložena data o produktech umístěných uživateli do nákupního košíku, kupónů, přepravních poplatků, zákaznických dat a mnoha dalších informací týkajících se procesu objednávky produktu.

Tato relace jsou vytvořena, i když je uživatel na webu registrován nebo ne, a obvykle musí vypršet a automaticky odstranit.

Bohužel se vždy nestane, že tato relace jsou odstraněna a v některých případech zůstávají trvale uloženy v WP_WOOCOMMERCE_SESSISIONS, což způsobuje, že tabulka dosáhne velkého objemu.

Jak vymazat stůl wp_woocommerce_sessions din sql?

1. Jdeme na Palubní deskaWooCommercePostaveníNástroje (Tab).

2.. Jdeme dolů na možnost “Jasné sezení zákazníků“. Opatrně! Vymazání relací klientů zahrnuje vymazání všech produktů, které jsou uloženy v nákupním košíku. Pokud při mazání těchto relací jsou zákazníci, kteří mají produkty v koši, zmizí a případná objednávka nebude dokončena.

3. klikněte “Jasný” a potvrzení operace.

V této době stůl “wp_wooCommerce_sessions” Je prázdný, takže všechny nákupní relace zákazníků byly odstraněny.

Problém není zdaleka vyřešen. Tabulka SQL WP_WOOCOMMERCE_SESSISES v ní shromažďuje data a ve výchozím nastavení bude znovu získat proporce, což není žádoucí.

Jak se staneme, že se zákazníci trvale zastaví ve WooCommerce – wp_woocommerce_sessions?

Nahoře jsem ukázal, jak lze stůl vyprázdnit “wp_wooCommerce_sessions” Z databáze, ale problém se znovu objeví po několika dnech, kdy budou shromážděny klientské relace.

Před WooCommerce 2.5 byla zachycena zákaznická relace pomocí souborů cookie a poté uložena v tabulce WordPress “wp_options“.
Pro větší obchody tato metoda často vedla k katastrofám. “wp_options” Být životně důležitým tabulkou WordPress, používaného obecnými možnostmi a nastavením. Ruční identifikace a vymazání klientských relací uložených v wp_options Nebyla to snadná práce.
Výkon WooCommerce nebyl nejlepší a škálovatelnost v průběhu času byla citlivým bodem.

Se spuštěním společnosti WooCommerce 2.5 v roce 2015 zavedli vývojáři WooCommerce nový manipulační a skladovací systém založený na WooCommerce Správce relací WP. This system has led to the appearance wp_woocommerce_sessions. Vyhrazená tabulka pro sezení zákazníků, která v databázi neinteraguje s jinými tabulkami. V případě hlavních chyb by ztráty měly být minimální.

Z toho, co jsem si všiml, jsou online obchody spuštěny před WooCommerce 2.5 a které v průběhu času dostávaly neustálé aktualizace, mají nějaké problémy týkající se automatického vymazání klientských relací. Nejpravděpodobněji se jedná o chybu na novější verzi pluginu WooCommerce 2.5 nebo WordPress / WooCommerce, který s aktualizacemi nedržel krok.

V mém případě to byl konflikt s funkcí přidanou do souboru functions.php tématu a které zabránit automatickému vymazání po vypršení sezení woocommerce_sessions.
Pokud takový problém zažíváte, musíte pečlivě prozkoumat všechny možné příčiny. Chyba SQL, perzekuce SQL, práce Cron, konfliktu s ostatními pluginy a v neposlední řadě zkontrolujte změny kódu v průběhu času.

Viděl jsem, že WooCommerce nabízí pouze 29 $ za plugin schopný podávat zákazníky. “Čistý vozík a relace pro WooCommerce“. Samozřejmě, kromě naprogramovaného delece relací, má modul několik nástrojů, které by mohly být užitečné.

Jednodušší možnost naprogramované vymazání a “woocommerce_sessions” v jednom denních intervalech, je posun s dalším kódem 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();
}

Pokud potřebujete pomoc nebo máte jiné řešení, zanechte komentář.

Vášnivý pro technologii, píšu s potěšením na StealthSetts.com počínaje rokem 2006. Mám bohaté zkušenosti s operačními systémy: MacOS, Windows a Linux, ale také v programovacích jazycích a platformách blogů (WordPress) a pro online obchody (WooCommerce, Magento, Presashop).

Home Váš zdroj IT tutoriálů, užitečných tipů a zpráv. Příliš velké WP_WOOCOMMERCE_SESSIONS v databázi [jak na to opravit]

1 pomyslel na „Příliš velké WP_WOOCOMMERCE_SESSIONS v databázi [jak na to opravit]”

  1. Nemám způsob, jak smazat data váží 500 MB a mám limit 1000 MB na minutu smazání všeho je zcela naplněno…Nějaké řešení?

    Odpověď
Zanechte komentář