за

1

Виправити величезні таблиці SQL: WP_Actionscheduler_actions & wp_actionscheduler_logs [Поради WooCommerce]

Виправити величезні таблиці SQL: WP_Actionscheduler_actions & wp_actionscheduler_logs [Поради WooCommerce]

1

ВООКУМЕРСЬКА він став дуже використовуваним модулем все більше і більше журнал онлайн. SEO, керування продуктами та запасами, чистий та інтуїтивно зрозумілий код, простий інтерфейс адміністрування та тисячі плагінів, розроблених для Woo, – це лише деякі з причин, чому він заслуговує шансу, коли ви думаєте про створення онлайн-магазину.

Як і будь-яка CMS, Woo не позбавлена ​​дивацтв, які можуть з’явитися в різних сценаріях використання або взаємодії з іншими плагінами WordPress.
На сервері з ресурсами обладнання досить щедро, я це помітив служба баз даних (mysqld) починає запитувати майже 80– 90% оперативної пам'яті. Досить серйозна проблема, тому що я просто не зрозумів звідки періодично виникає помилка 110 (110: Час очікування підключення минув.).
При детальнішому розгляді процесів SQL я виявив, що в одній базі даних є дві таблиці з досить значними обсягами: wp_actionscheduler_actions і wp_actionscheduler_logs.

В моді нормальний заплановані дії але Планувальник дій WooCommerce вони повинні бути видалені автоматично після їх виконання. Це трапляється не завжди, і вони залишаються заблокованими в wp_actionsscheduler_actions зі статусом: не вдалося, скасовано, в очікуванні або повний.

На зображенні вище таблиці “wp_actionsscheduler” вони тільки мають трохи більше 15 Мб. Мені шкода, що я не надихнувся зробити знімок екрана, коли вони це зробили1,2 ГБ. Незважаючи на це, 15 МБ — це досить багато для таблиці, яка містить заплановані дії WooCommerce.
Ці таблиці “НАДУТИЙ” це результат бл WP-Cron не видаляє записи догляд за статусом “не вдалося“, “скасовано” і “повний“. Зазвичай ці записи мають бути автоматично видалені з бази даних.
Запрограмовані дії та їхній статус можна легко побачити в ВООКУМЕРСЬКАСтатусЗаплановані дії.

Як ми чистимо стоки? “не вдалося“, “скасовано” і “повний” Зwp_actionscheduler_actions і wp_actionscheduler_logs

Ми отримуємо доступ до бази даних через phpMyAdmin, потім в SQL по черзі виконуємо командні рядки:

ВИДАЛИТИ З `wp_actionscheduler_actions` WHERE `status` = 'canceled'
ВИДАЛИТИ З `wp_actionscheduler_actions` WHERE `status` = 'complete'
ВИДАЛИТИ З `wp_actionscheduler_actions` WHERE `status` = 'failed'

Якщо цю таблицю очищено, це не означає, що проблему вирішено. Як я вже сказав вище, основною причиною є деактивація служби WP-Cron з різних причин. Таким чином, записи зі статусами “зомбі” їх більше не можна видалити.
Дуже важливо знати, що якщо у вас є інтернет-магазин на WooCommerce, і він підключений до Facebook Shops через плагін “Facebook для WooCommerce“, він автоматично синхронізує продукти WooCommerce з вашим обліковим записом Facebook Shops. І робить це кожні 15 хвилин. Якщо ці записи SQL не контролювати, ви можете отримати кілька сотень тисяч рядків “wc_facebook_regenerate_feed” у “wp_actionscheduler_actions“.

Цей інтервал підходить для магазинів, які мають велику кількість замовлень і необхідно, щоб запаси товарів у Facebook Shops постійно оновлювалися. Якщо ви все ще вважаєте, що цю синхронізацію між Facebook і вашим магазином можна виконувати кожні 24 години, рядок коду нижче може вам допомогти.

Відкрийте файл functions.php теми WordPress / WooCommerce, на якій працює ваш магазин, і додайте:

add_filter( 'wc_facebook_feed_generation_interval', function(){ return HOUR_IN_SECONDS * 24; } );

Далі ми можемо встановити інтервал в один тиждень для автоматичного очищення:

add_filter( 'action_scheduler_retention_period', 'wpb_action_scheduler_purge');
функція wpb_action_scheduler_purge() {
 повернути WEEK_IN_SECONDS;
}

Після збереження цих змін у вас більше не буде проблем із гігантськими таблицями для “wp_actionscheduler_actions”.

Виправити величезні таблиці SQL: WP_Actionscheduler_actions & wp_actionscheduler_logs [Поради WooCommerce]

Вас також може зацікавити...

WordPress

Як скинути пароль користувача користувача WordPress без доступу до електронної пошти або бази даних – Скиньте пароль адміністратора WordPress

Простий підручник, де ви можете скинути пароль користувача за допомогою адміністратора WordPress, якщо у вас немає доступу до бази даних або електронної пошти адміністратора. Скиньте пароль адміністратора WordPress.
Читайте далі

Як налаштувати сторінку “Не було знайдено жодних продуктів, що відповідають вашому вибору” у woocommerce – Оптимізація продажів в інтернет -магазинах

WooCommerce Best Practice - Ghid / tutorial pentru personalizarea paginii de WooCommece in care nu apar rezultate in urma uneo cautari in magazinul online. "No products were found matching your selection" sau "No Products Found".
Читайте далі

Одна думка “Виправити величезні таблиці SQL: WP_Actionscheduler_actions & wp_actionscheduler_logs [Поради WooCommerce]

  1. Нетзі каже:

    @Stealth
    Tak for hjælpen. Du redder min dag og shop. Jeg opdagede først dette efter et nedbrud af min webshop. Mange plugins er begyndt at dumpe deres output i den tabel og det fylder… Невдоволення столом на 9,2 ГБ змусило мого хоста відмовитися від свого, інакше, прекрасного часу для opp. Тепер я обрізаю гарний код!
    Просто питання щодо цього столу з мотузкою “wpb_action_scheduler_purge” це за замовчуванням у базі даних чи мені потрібно перейменувати її на щось у моїй (за умовчанням моя база даних не називається 'wp_’ ) чи, можливо, це функція?
    Дякую за допомогу та супер гарну статтю

    Привітання
    Нетзі

Залиште відповідь

Ваша електронна адреса не буде опублікована. Необхідні поля позначені *