Liian suuri wp_woocommerce_sessions tietokannassa [Korjausohjeet]

Kuten sanoin muissa artikkeleissa, WooCommerce se on yhä kestävämpi ja joustavampi moduuli, joka pystyy muuntumaan WordPress vuonna Ihanteellinen verkkokauppa aloittavalle yritykselle.

Kokoiselle verkkokaupalle modeste, WooCommerce sitä voidaan käyttää myös "jaetussa hosting-tilassa", sillä se pystyy helposti tukemaan 5.000 tuotetta / 100 tilausta päivässä, jos käytetty teema ei kuluta paljon resursseja ja et käytä väärin muita moduuleja (laajennuksia).

Lähdekoodin optimointi WP-teemat, moduulit (WP-laajennukset) ja tietokannan optimointi on myös kaksi näkökohtaa, joista meidän on oltava hyvin varovaisia.

Huomasin eräänä päivänä, että verkkokauppa kokoja modese alkaa kuluttaa valtavasti RAM-resursseja ja CPU omistetulla palvelimella antelias. Tämä suuri resurssien kulutus johti lisääntyneeseen "kuormitukseen" palvelimelle ja pitkään onine-kauppasivujen latausaikaan.

Kun havaitsemme perusteettoman suuren kuormituksen verkkopalvelimelle, on hyvä tutkia syyt huolellisesti ennen kuin ryhdyt toimiin.

Huomasin tietokannassa, että taulukko "wp_woocommerce_sessions"Se on valtava. Siinä oli yli 6 Gt. Valtava määrä tietokannan taulukkoa, joka ei yleensä ylittänyt 100 Mt: ta.

mikä on wp_woocommerce_istunnot?

Kuten voimme arvata hänen nimestään, taulukko "wp_woocommerce_sessions”Sisältää PHP-istuntoja (PHP-istunnot).
Nämä istunnot ovat sivuston käyttäjien (tai verkkorobottien) toimintoja, ja suurimman osan ajasta ne päätyvät tietokantaan evästeiden kautta. kohteessa wp_woocommerce_istunnot ovat tallennettuja tietoja käyttäjien ostoskoriin asettamista tuotteista, kuponkeja, toimituskuluja, asiakastietoja ja monia muita tuotteiden tilausprosessiin liittyviä tietoja.

Nämä istunnot luodaan riippumatta siitä, onko käyttäjä rekisteröitynyt sivustolle vai ei, ja niiden pitäisi yleensä vanhentua ja poistaa automaattisesti jonkin ajan kuluttua.

Valitettavasti ei aina tapahdu, että nämä istunnot poistetaan ja joissain tapauksissa ne pysyvät pysyvästi tallennettuina wp_woocommerce_sessions, mikä tekee tästä taulukosta melko suuren volyymin.

Taulukon poistaminen wp_woocommerce_sessions SQL: stä?

1. Siirry koontinäyttöön. →  WooCommerce →  Tila →  Työkalut (välilehti).

2. Vieritä alas vaihtoehtoon "Tyhjennä asiakasistunnot”. Varovainen! Asiakasistuntojen poistaminen tarkoittaa kaikkien heidän ostoskoriin asettamien tuotteiden poistamista. Jos näiden istuntojen poistamisen aikana on asiakkaita, joilla on tuotteita ostoskorissa, he katoavat ja mahdollista verkkotilausta ei suoriteta loppuun.

3. Napsauta "Tyhjennä" ja vahvista toiminto.

Tällä hetkellä taulukko "wp_woocommerce_sessions" on tyhjä, joten kaikki asiakasostosistunnot on poistettu.

Ongelma ei ole kaukana ratkaistu. SQL-taulukko wp_woocommerce_sessions kerää siihen dataa uudelleen ja oletuksena se saa mittasuhteet uudelleen, mikä ei ole toivottavaa.

Kuinka estämme asiakasistuntojen tallentamisen pysyvästi WooCommerce - wp_woocommerce_sessions?

Olen näyttänyt yllä, kuinka taulukko "wp_woocommerce_sessions" tietokannasta, mutta ongelma ilmenee uudelleen muutaman päivän kuluttua, kun asiakasistunnot kerääntyvät uudelleen.

Ennen WooCommerce 2.5, asiakasistunnot tallennettiin evästeiden avulla tallennettavaksi taulukkoon myöhemmin WordPress "wp_options".
Suurille myymälöille tämä menetelmä on usein johtanut katastrofeihin. "Wp_options”Olen elintärkeä pöytä WordPress, joita käyttävät yleiset valinnat ja asetukset. Tunnistaa ja poistaa manuaalisesti tallennettuja asiakasistuntoja wp_options se ei ollut helppo työ.
Suorituskyky WooCommerce ne eivät olleet parhaita, ja ajan mittaan skaalautuvuus oli herkkä kohta.

Kun käynnistää WooCommerce 2.5 vuonna 2015, kehittäjät WooCommerce esitteli uuden istunnonkäsittely- ja tallennusjärjestelmän WooCommerceperustuen WP Session Manager. Tämä järjestelmä johti syntymiseen wp_woocommerce_sessions. Oma istuntoa varten tarkoitettu taulukko, joka ei ole tietokannassa vuorovaikutuksessa muiden taulukkojen kanssa. Suurten virheiden sattuessa tappioiden tulisi olla vähäisiä.

Olen havainnut, että verkkokaupat aloittivat aiemmin WooCommerce 2.5 ja jotka ovat saaneet jatkuvasti päivityksiä ajan myötä, niillä on joitain ongelmia asiakasistuntojen automaattisen poistamisen suhteen. Se on todennäköisesti bugi, joka ilmestyi uudempaan versioon WooCommerce 2.5 tai laajennus WordPress / WooCommerce joka ei ole pysynyt päivitysten mukana.

Minun tapauksessani se oli ristiriita tiedostoon lisätyn toiminnon kanssa functions.php ja mitä estää automaattisen poistamisen vanhentuneiden istuntojen jälkeen woocommerce_sessions.
Jos kohtaat tällaisen ongelman, sinun on tutkittava huolellisesti kaikki mahdolliset syyt. SQL-virhe, SQL-oikeudet, Cron Job, ovat ristiriidassa muiden laajennusten kanssa ja viimeisenä mutta ei vähäisimpänä tarkistavat koodiin tekemäsi muutokset ajan myötä.

näin sen WooCommerce tarjoaa vain 29 dollaria laajennuksen, joka pystyy hallitsemaan asiakasistuntoja. "Tyhjennä ostoskori ja istunnot WooCommerce”. Tietysti istuntojen ajoitetun poistamisen lisäksi moduulissa on useita työkaluja, jotka voivat auttaa sinua.

Yksinkertaisempi vaihtoehto ajoitettu poistaminenwoocommerce_sessions”Yhden päivän välein, on saatavana seuraavalla koodilla 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();
}

Jätä kommentti, jos tarvitset apua tai jos sinulla on toinen ratkaisu.

Teknologiasta kiinnostunut, kirjoitan mielelläni StealthSettings.com-sivustolla vuodesta 2006. Minulla on laaja kokemus käyttöjärjestelmistä: macOS, Windows ja Linux, sekä ohjelmointikielistä ja blogialustoista (WordPress) ja verkkokaupoista (WooCommerce, Magento, PrestaShop).

Miten » Tweaks & Hacks » Liian suuri wp_woocommerce_sessions tietokannassa [Korjausohjeet]

1 ajatus aiheesta "Liian suuri wp_woocommerce_sessions tietokannassa [How-To Fix]"

  1. Minulla ei ole mitään keinoa poistaa tietoja painaa 500 Mt ja minulla on 1000 mb/minuuttirajoitus poistaa kaikki on täysin täynnä… .jotain ratkaisua?

    vastata
Jätä kommentti