Слишком большой wp_woocommerce_sessions в базе данных [Как исправить]

Как я уже говорил в других статьях, WooCommerce это все более надежный и гибкий модуль, способный трансформировать WordPress INTR-ип Идеальный интернет-магазин для начинающего бизнеса.

Для интернет-магазина размером modeSte, WooCommerce его также можно запустить на «общем хостинге», имея возможность легко поддерживать 5.000 продуктов / 100 заказов в день, если используемая тема не потребляет много ресурсов и вы не злоупотребляете другими модулями (плагинами).

Оптимизация исходного кода Темы WP, модули (плагины WP) и оптимизация базы данных есть также два аспекта, о которых нам нужно быть очень осторожными.

Я заметил на днях, что интернет-магазин размеров modeэто начинается потреблять огромное количество ресурсов оперативной памяти и CPU на выделенном сервере щедрый. Такое высокое потребление ресурсов привело к повышенной «нагрузке» на сервер и долгому времени загрузки страниц интернет-магазина.

Когда мы замечаем неоправданно высокую нагрузку на веб-сервер, рекомендуется тщательно изучить причины, прежде чем предпринимать какие-либо действия.

В базе я заметил, что таблица "wp_woocommerce_sessions"Это огромный. У него было более 6 ГБ. Огромный объем таблицы в базе данных, который обычно не превышает 100 МБ.

что такое wp_woocommerce_сеансы?

Как мы можем догадаться по его имени, таблица "wp_woocommerce_sessions”Содержит сеансы PHP (Сеансы PHP).
Эти сеансы являются действиями пользователей веб-сайта (или веб-роботов), и в большинстве случаев они попадают в базу данных через файлы cookie. В wp_woocommerce_sessions — это сохраненные данные о продуктах, помещенных пользователями в корзину, купоны, стоимость доставки, данные о клиентах и ​​много другой информации, связанной с процессом заказа продукта.

Эти сеансы создаются независимо от того, зарегистрирован пользователь на сайте или нет, и обычно они истекают и удаляются автоматически через некоторое время.

К сожалению, не всегда эти сессии удаляются, а в некоторых случаях они остаются навсегда сохраненными в wp_woocommerce_sessions, из-за чего эта таблица достигает довольно большого объема.

Как удалить таблицу wp_woocommerce_sessions из SQL?

1. перейти к Аккаунт →  WooCommerce →  Статус: →  Инструменты (вкладка).

2. Прокрутите вниз до параметра "Очистить сеансы клиентов«. Осторожный! Удаление сеансов клиентов означает удаление всех продуктов, которые они поместили в корзину. Если при удалении этих сеансов появятся клиенты, у которых есть товары в корзине, они исчезнут, и возможный онлайн-заказ не будет выполнен.

3. Нажмите «Очистить» и подтвердите операцию.

В этот момент таблица "wp_woocommerce_sessions" пуст, поэтому все сеансы покупок клиентов были удалены.

Проблема далека от решения. SQL-таблица wp_woocommerce_sessions снова соберет в него данные и по умолчанию снова получит пропорции, что нежелательно.

Как предотвратить постоянное сохранение сеансов клиентов в WooCommerce – wp_woocommerce_sessions?

Я показал выше, как таблица "wp_woocommerce_sessions" из базы данных, но проблема появится снова через несколько дней, когда клиентские сессии снова соберутся.

перед тем WooCommerce 2.5 сеансы клиентов записывались через куки, чтобы позже сохранить в таблице WordPress wp_options».
Для крупных магазинов этот метод часто приводил к катастрофам. «Wp_options«Будучи жизненно важным столом WordPress, используемый общими параметрами и настройками. Идентификация и ручное удаление клиентских сессий, хранящихся в wp_options это была нелегкая работа.
Производительность WooCommerce они были не самыми лучшими, и масштабируемость с течением времени была чувствительным моментом.

С запуском WooCommerce 2.5 в 2015 году разработчики WooCommerce введена новая система обработки и хранения сессий WooCommerceна основании Менеджер сессий WP. Эта система привела к появлению wp_woocommerce_sessions. Выделенная таблица для клиентских сеансов, которая в базе данных не взаимодействует с другими таблицами. В случае серьезных ошибок потери должны быть минимальными.

Из того, что я наблюдал, интернет-магазины запускались раньше WooCommerce 2.5 и которые со временем получали постоянные обновления, имеют некоторые проблемы с автоматическим удалением клиентских сессий. Скорее всего, это ошибка, появившаяся в более новой версии WooCommerce 2.5 или плагин WordPress / WooCommerce который не поспевает за обновлениями.

В моем случае это был конфликт с функцией, добавленной в файл functions.php темы, и которая предотвращает автоматическое удаление по истечении времени сеансов с истекшим сроком woocommerce_sessions.
Если вы столкнулись с такой проблемой, вы должны внимательно изучить все возможные причины. Ошибка SQL, разрешения SQL, задание Cron, конфликты с другими плагинами и, наконец, что не менее важно, проверьте изменения, внесенные вами в код с течением времени.

я видел это 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();
}

Оставьте комментарий, если вам нужна помощь или есть другое решение.

Поклонник технологий, с 2006 года с удовольствием пишу на StealthSettings.com. Обширный опыт работы с операционными системами: macOS, Windows и Linux, а также с языками программирования и платформами для блогов (WordPress) и онлайн-магазинов (WooCommerce, Magento, PrestaShop).

КАК » Твики и хаки » Слишком большой wp_woocommerce_sessions в базе данных [Как исправить]

1 мысль о «Слишком большой wp_woocommerce_sessions в базе данных [Как исправить]"

  1. У меня нет возможности удалить данные весит 500мб и у меня лимит 1000мб в минуту на удаление все полностью заливается опять… .какое решение?

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