Превелики вп_вооцоммерце_сессионс у бази података [како да поправим]

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

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

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

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

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

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

Шта је вп_вооцоммерце_сессионс?

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

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

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

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

КСНУМКС. иди на Kontrolna tabla →  ВооЦоммерце →  статус →  алат (таб).

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

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

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

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

Како зауставити трајно чување сесија купаца у ВооЦоммерце - wp_woocommerce_sessions?

Изнад смо показали како се табела „вп_вооцоммерце_сессионс“ може испразнити из базе података, али проблем ће се поново појавити након неколико дана у којима ће се сесије купаца поново окупљати.

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

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

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

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

Видели смо да ВооЦоммерце нуди додатак за само 29 долара који може да управља сесијама корисника. „Очистите колица и сесије за ВооЦоммерце“. Наравно, поред заказаног брисања сесија, модул има неколико алата који би вам могли помоћи.

Једноставнија опција заказано брисање „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();
}

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

Заљубљен у технологију, волим да тестирам и пишем упутства о оперативним системима macOS, Линук, Windows, о ВордПресс-у, ВооЦоммерце-у и ЛЕМП-у о конфигурацији веб сервера (Линук, НГИНКС, МиСКЛ и ПХП). Пишем даље StealthSettings.цом од 2006. године, а неколико година касније почео сам да пишем на иХовТо.Типс водичима и вестима о уређајима у екосистему Apple: iPhone, иПад, Apple Ватцх, ХомеПод, iMac, MacBook, АирПодс и додаци.

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