КОРЕКЦИЯ НА ОГРОМНИ SQL таблици: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Съвети]

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

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

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

На изображението по-горе таблиците "wp_actionsscheduler„Те имат само малко над 15 MB. Съжалявам, че не бях вдъхновен да направя екранна снимка, когато те бяха 1.2 GB. Въпреки това 15 MB са доста за таблица, която съдържа програмираните действия на WooCommerce.
Тези "подути" таблици са резултат от това WP-Cron не изтрива записи които имат статус "Неуспешно","отменен"А"завърши“. Обикновено тези записи трябва автоматично да бъдат изтрити от базата данни.
Планираните действия и тяхното състояние могат да се видят много лесно и в WooCommerce →  Статус →  Планирани действия.

Как да почистите улуците "Неуспешно","отменен"А"завърши"В wp_actioncheduler_actions si wp_actioncheduler_logs

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

DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'canceled'
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'complete'
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'failed'

След като тази таблица бъде почистена, това не означава, че проблемът е решен. Както казах по-горе, основната причина е деактивирането на услугата WP-Cron по различни причини. По този начин записите със статус „зомби“ вече не могат да бъдат изтрити.
Много е важно да знаете, че ако имате онлайн магазин на WooCommerceи е свързан с Facebook Shops чрез плъгина "Фейсбук за WooCommerce“, той автоматично синхронизира продуктите от WooCommerce с вашия Facebook Shops акаунт. И го прави на всеки 15 минути. Тези SQL записи, ако не се контролират, можете да получите няколко стотици хиляди редове"wc_facebook_regenerate_feed"В"wp_actioncheduler_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' );
function wpb_action_scheduler_purge() {
 return WEEK_IN_SECONDS;
}

След като запазите тези промени, няма да имате проблеми с гигантски таблици за "wp_actioncheduler_actions".

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

How to » Любопитство » КОРЕКЦИЯ НА ОГРОМНИ SQL таблици: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Съвети]

1 мисъл относно „ПОПРАВЯНЕ НА ОГРОМНИ SQL таблици: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce съвети]"

  1. @Stealth
    Така за hjælpen. Du redder min dag og shop. След това ще се възползвате от онлайн магазина. Mange плъгините се извеждат при извеждане на демпфери и се извеждат таблици и детайли ... Разширяването на 9.2 GB табела за минимален хост до прощаване на ханси е добре. Nu trimmer jeg med den fine kode!
    Изтегляне и препращане към фалшиво залагане на табела „wpb_action_scheduler_purge“ е от en en default i db'en eller skal jeg evt. преименувайте den до noget i min (default хедър мин. db ikke 'wp_') дали сте длъжни да използвате функцията?
    Tak за hjælpen og den супер фин артикул

    за разбирането
    Нетзи

    Отговор
Оставете коментар