от

1

Поправете огромни SQL таблици: WP_ACTIONCHEDULER_ACTIONS & WP_ACTIONCHEDULER_LOGS [WooCommerce Съвети]

Поправете огромни SQL таблици: WP_ACTIONCHEDULER_ACTIONS & WP_ACTIONCHEDULER_LOGS [WooCommerce Съвети]

1

WooCommerce той се превърна в много използван модул от все повече и повече Списание онлайн. SEO, управление на продукти и запаси, изчистен и интуитивен код, опростен интерфейс за администриране и хилядите плъгини, разработени за Woo, са само част от причините, поради които заслужава шанс, когато мислите да разработите онлайн магазин.

Като всяка CMS, Woo не е освободен от странностите, които могат да се появят в различни сценарии на използване или взаимодействие с други WordPress добавки.
На сървър с ресурси хардуер доста щедро, забелязах това услуга за база данни (mysqld) започва да иска почти 80– 90% RAM. Доста сериозен проблем, защото просто не разбрах откъде идва грешката 110 периодично (110: Времето за изчакване на връзката изтече).
При по-внимателна проверка на SQL процесите открих, че една база данни има две таблици с доста значителни обеми: wp_actionscheduler_actions и wp_actionscheduler_logs.

В мод нормален планирани действия но Планировчик на действия на WooCommerce те трябва да бъдат изтрити автоматично, след като бъдат изпълнени. Това не винаги се случва и те остават блокирани в wp_actionsscheduler_actions със статус: неуспешно, отменен, в очакване или пълен.

На изображението по-горе, таблиците “wp_actionsscheduler” имат само малко над 15 MB. Съжалявам, че не бях вдъхновен да направя екранна снимка, когато го направиха1,2 GB. Въпреки това 15 MB са доста за таблица, която съдържа планирани WooCommerce действия.
Тези таблици “НАДУТИ” произтича от ок WP-Cron не изтрива записи care au status “неуспешно“, “отменен” и “пълен“. Обикновено тези записи трябва да бъдат автоматично изтрити от базата данни.
Програмираните действия и тяхното състояние могат да се видят много лесно в WooCommerceСтатусПланирани действия.

Как да почистим канализацията? “неуспешно“, “отменен” и “пълен” Отwp_actionscheduler_actions и wp_actionscheduler_logs

Достъп до базата данни чрез phpMyAdmin, след което в SQL изпълняваме командните редове на свой ред:

ИЗТРИВАНЕ ОТ `wp_actionscheduler_actions` WHERE `статус` = 'отменено'
ИЗТРИВАНЕ ОТ `wp_actionscheduler_actions` WHERE `status` = 'complete'
ИЗТРИВАНЕ ОТ `wp_actionscheduler_actions` WHERE `статус` = 'неуспешно'

След като тази таблица е изчистена, това не означава, че проблемът е решен. Както казах по-горе, основната причина е деактивирането на услугата 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_ACTIONCHEDULER_ACTIONS & WP_ACTIONCHEDULER_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_ACTIONCHEDULER_ACTIONS & WP_ACTIONCHEDULER_LOGS [WooCommerce Съвети]

  1. Неци казва:

    @Стелт
    Благодаря за помощта Спасяваш деня ми и пазаруваш. Открих това едва след срив на моя уеб магазин. Много добавки са започнали да изхвърлят изхода си в тази таблица и тя се запълва… Wooping маса от 9,2 GB накара моя хост да се откаже от иначе хубавото си opp време. Сега подстригвам с хубавия код!
    Само въпрос относно тази маса с пускащо въже “wpb_action_scheduler_purge” по подразбиране в db ли е или трябва да го преименувам на нещо в моята (по подразбиране моята db не се нарича 'wp_’ ) или може би е функция?
    Благодаря за помощта и супер хубавата статия

    Поздрави
    Неци

Оставете отговор

Вашият имейл адрес няма да бъде публикуван. Необходимите полета са маркирани *