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

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

Для интернет -магазина скромного размера, WoCommerce может быть прокат на “Общий хостинг”Возможность выдержать слегка и 5000 продуктов / 100 заказов в актуальность, если используемая тема не потребляет много ресурсов и не злоупотребляет другими модулями (плагинами).

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

Я заметил предыдущие дни, когда начинается интернет -магазин скромных измерений Чтобы потреблять многие ресурсы ОЗУ и ЦП на выделенном сервере щедрый. Это высокое потребление ресурсов привело к дефолту к “нагрузка” Увеличилось на сервере и большое время для зарядки страниц вечернего магазина.

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

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

Это este wp_woocommerce_ssionals?

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

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

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

Как стереть стол wp_woocommerce_sessions Din SQL?

1. Мы идем в Приборная панельWoocommerceСтатусИнструменты (вкладка).

2. Мы идем к варианту “Чистые сессии клиентов“Полем Осторожный! Удаление сессий клиентов включает в себя удаление всех продуктов, размещенных ими в корзине. Если при удалении этих сессий будут клиенты, у которых есть продукты в корзине, они исчезнут, и возможный заказ не будет завершен.

3. Нажмите “Прозрачный” и подтверждение операции.

В это время стол “wp_woocommerce_sessions” Это пусто, поэтому все сессии покупок клиентов были удалены.

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

Как мы делаем сессии клиента навсегда останавливаться в WooCommerce – wp_woocommerce_sessions?

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

Перед Woocommerce 2.5 сеансы клиентов были захвачены через файлы cookie, а затем сохранились в таблице WordPress “wp_options“Полем
Для более крупных магазинов этот метод часто приводил к бедствиям. “wp_options” Быть жизненно важной таблицей WordPress, используемой общими параметрами и настройками. Ручная идентификация и удаление сеансов клиентов, хранящихся в wp_options Это была нелегкая работа.
Производительность WooCommerce была не лучшей, и масштабируемость с течением времени была чувствительной точкой.

С запуском WooCommerce 2.5 в 2015 году разработчики WooCommerce представили новую систему обработки и хранения на основе WooCommerce WP Sessions ManagerПолем Эта система привела к появлению 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();
}

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

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

Дом Ваш источник его учебников, полезных советов и новостей. Слишком большой wp_woocommerce_sessions в базе данных [как исправить]

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

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

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