Превелика вп_woocommerce_сессионс у бази података [Како поправити]

Као што сам рекао у другим чланцима, WooCommerce то је све робуснији и флексибилнији модул, способан да се трансформише WordPress у Идеална продавница на мрежи за покретање предузећа.

За онлајн продавницу величине modeсте WooCommerce такође се може покренути на „дељеном хостингу“, јер је у могућности да лако подржи 5.000 производа / 100 поруџбина дневно, ако тема која се користи не троши много ресурса и не злоупотребљавате друге модуле (додатке).

Оптимизација изворног кода из (ВП Тхемес), модула (ВП Плугинс) и оптимизација базе података постоје и два аспекта на која морамо бити врло опрезни.

Пре неки дан сам приметио да је онлајн продавница величина modeпочиње да троше енормно много РАМ ресурса и CPU на наменском серверу великодушан. Ова велика потрошња ресурса довела је до повећаног „оптерећења“ на серверу и дугог времена учитавања страница интернетске продавнице.

Када приметимо неоправдано велико оптерећење на веб серверу, добро је пажљиво истражити узроке пре него што предузмете било какву радњу.

У бази података сам приметио да табела „wp_woocommerce_sessions"Огромно је. Имао је преко 6 ГБ. Огроман обим за табелу у бази података која обично није прелазила 100 МБ укупно.

шта је вп_woocommerce_сессионс ?

Као што можемо да претпоставимо из његовог имена, табела „wp_woocommerce_sessions”Садржи ПХП сесије (ПХП сесије).
Ове сесије су радње корисника веб локације (или веб робота) и већину времена до базе података доспевају путем колачића. у вп_woocommerce_сессионс су ускладиштени подаци о производима које су корисници поставили у корпу за куповину, купони, трошкови доставе, подаци о купцима и многе друге информације везане за процес наручивања производа.

Ове сесије се креирају без обзира да ли је корисник регистрован на веб локацији или не и обично би требало аутоматски да истекну и да се избришу након неког времена.

Нажалост, не дешава се увек да се ове сесије избришу и, у неким случајевима, остану трајно сачуване у вп_woocommerce_сессионс, због чега ова табела достиже прилично велику количину.

Како обрисати табелу wp_woocommerce_sessions из СКЛ-а?

КСНУМКС. иди на Kontrolna tabla →  WooCommerce →  статус →  алат (таб).

2. Померите се надоле до опције "Обришите сесије купаца“. Пазљиво! Брисање сесија купаца значи брисање свих производа које стављају у корпу. Ако током брисања ових сесија постоје купци који имају производе у колицима, они ће нестати и могућа наруџба на мрежи неће бити завршена.

3. Кликните на „Цлеар“ и потврдите операцију.

У овом тренутку табела "вп_woocommerce_сессионс“ је празан, тако да су све сесије куповине купаца избрисане.

Проблем је далеко од решења. СКЛ табела вп_woocommerce_сессионс ће поново прикупљати податке у њему и подразумевано ће поново добити пропорције, што није пожељно.

Како да спречимо да се сесије клијената трајно чувају WooCommerce - wp_woocommerce_sessions?

Горе сам показао како табела "вп_woocommerce_сессионс“ из базе података, али ће се проблем поново појавити након неколико дана када се клијентске сесије поново окупе.

пре WooCommerce 2.5, клијентске сесије су снимљене преко колачића, да би се касније сачувале у табели WordPress "wp_options".
За веће продавнице овај метод је често доводио до катастрофа. „Вп_options„Бити витални сто за WordPress, који користе опште опције и подешавања. Идентификовање и ручно брисање клијентских сесија сачуваних у wp_options то није био лак посао.
Перформансе WooCommerce нису били најбољи, а скалабилност током времена била је осетљива тачка.

Лансирањем WooCommerce 2.5 у 2015, програмери WooCommerce увео нови систем за руковање и складиштење сесија WooCommercena основу ВП Сессионс Манагер. Овај систем је довео до појаве wp_woocommerce_sessions. Наменска табела за сесије клијената која у бази података не комуницира са другим табелама. У случају већих грешака, губици би требали бити минимални.

Колико сам приметио, онлајн продавнице су покренуте раније WooCommerce 2.5 и који су током времена добијали стална ажурирања, имају неких проблема у вези са аутоматским брисањем клијентских сесија. Највероватније је реч о грешци која се појавила на новијој верзији WooCommerce 2.5 или додатак WordPress / WooCommerce која није пратила ажурирања.

У мом случају је то био сукоб са функцијом која је додата у датотеку functions.php теме, а који спречава аутоматско брисање након времена истека сесија из woocommerce_sessions.
Ако се суочите са таквим проблемом, морате пажљиво истражити све могуће узроке. СКЛ грешка, СКЛ дозволе, Црон Јоб, сукоби са другим додацима и на крају, али не најмање важно, проверите промене које сте направили у коду током времена.

Видео сам да WooCommerce нуди за само 29 долара додатак који може да управља сесијама клијената. "Обришите корпу и сесије за 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();
}

Оставите коментар ако вам је потребна помоћ или ако имате неко друго решење.

Страствен за технологију, пишем са задовољством StealthSettings.цом од 2006. Имам велико искуство у оперативним системима: macOS, Windows си Linux, али и на програмским језицима и блогерским платформама (WordPress) и за онлајн продавнице (WooCommerce, Магенто, ПрестаСхоп).

како » Подешавања и хаковања » Превелика вп_woocommerce_сессионс у бази података [Како поправити]

1 мисао о „Превелик вп_woocommerce_сессионс у бази података [како поправити]"

Оставите коментар