Как я уже говорил в других статьях, WooCommerce это все более надежный и гибкий модуль, способный трансформировать WordPress INTR-ип Идеальный интернет-магазин для начинающего бизнеса.
Для небольшого интернет-магазина WooCommerce его также можно запустить на «общем хостинге», имея возможность легко поддерживать 5.000 продуктов / 100 заказов в день, если используемая тема не потребляет много ресурсов и вы не злоупотребляете другими модулями (плагинами).
Оптимизация исходного кода Темы WP, модули (плагины WP) и оптимизация базы данных есть также два аспекта, о которых нам нужно быть очень осторожными.
На днях заметил, что запускается небольшой интернет-магазин. потреблять огромное количество ресурсов оперативной памяти и CPU на выделенном сервере щедрый. Такое высокое потребление ресурсов привело к повышенной «нагрузке» на сервер и долгому времени загрузки страниц интернет-магазина.
Когда мы замечаем неоправданно высокую нагрузку на веб-сервер, рекомендуется тщательно изучить причины, прежде чем предпринимать какие-либо действия.
В базе я заметил, что таблица "wp_woocommerce_sessions
"Это огромный. У него было более 6 ГБ. Огромный объем таблицы в базе данных, который обычно не превышает 100 МБ.
Cодержание
что такое 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();
}
Оставьте комментарий, если вам нужна помощь или есть другое решение.
У меня нет возможности удалить данные весит 500мб и у меня лимит 1000мб в минуту на удаление все полностью заливается опять… .какое решение?