Fix enorme SQL -tabeller: WP_AKTIONSCHEDULER_ACTIONS_ACTIONS & WP_ACTIONSCHEDULER_LOGS [WOOCOMMOMMANCE TIPS]
WooCommerce det er blevet et meget brugt modul af flere og flere magasin online. SEO, produkt- og lagerstyring, ren og intuitiv kode, enkel administrationsgrænseflade og de tusindvis af plugins udviklet til Woo, er blot nogle af grundene til, at det fortjener en chance, når du tænker på at udvikle en online butik.
Som ethvert CMS er Woo ikke fritaget for de mærkværdigheder, der kan forekomme i forskellige scenarier for brug eller interaktion med andre WordPress-plugins.
På en server med ressourcer hardware ret generøst, det lagde jeg mærke til database service (mysqld) begynder at anmode om næsten 80– 90% af RAM. Et ret alvorligt problem, fordi jeg simpelthen ikke forstod, hvor fejlen 110 periodisk kommer fra (110: Forbindelse timeout).
Ved nærmere inspektion af SQL-processerne opdagede jeg, at en database har to tabeller med ganske betydelige volumener: wp_actionscheduler_actions og wp_actionscheduler_logs.
I mod normal planlagte handlinger men WooCommerce Action Scheduler de skal slettes automatisk, når de er udført. Dette sker ikke altid, og de forbliver blokeret i wp_actionsscheduler_actions med status: mislykkedes, annulleret, indtil eller komplet.
På billedet ovenfor, tabellerne “wp_actionsscheduler” de kun har lidt over 15 MB. Jeg er ked af, at jeg ikke blev inspireret til at tage et skærmbillede, da de havde1,2 GB. Alligevel er 15 MB ret meget for en tabel, der indeholder planlagte WooCommerce-handlinger.
Disse tabeller “OPPUSTET” det skyldes ca WP-Cron sletter ikke poster care au status “mislykkedes“, “annulleret” og “komplet“. Normalt skal disse poster automatisk slettes fra databasen.
De programmerede handlinger og deres status kan meget let ses i WooCommerce →Status →Planlagte handlinger.
Hvordan renser vi afløbene? “mislykkedes“, “annulleret” og “komplet” FRAwp_actionscheduler_actions og wp_actionscheduler_logs
Vi får adgang til databasen gennem phpMyAdmin, så i SQL udfører vi kommandolinjerne på skift:
SLET FRA `wp_actionscheduler_actions` HVOR `status` = 'annulleret'
SLET FRA `wp_actionscheduler_actions` HVOR `status` = 'fuldført'
SLET FRA `wp_actionscheduler_actions` HVOR `status` = 'mislykkedes'
Når først dette bord er renset, betyder det ikke, at problemet er løst. Som jeg sagde ovenfor, er hovedårsagen deaktiveringen af WP-Cron-tjenesten af forskellige årsager. Således posterne med statusser “zombie” de kan ikke længere slettes.
Este foarte important de stiut ca daca aveti un magazin online pe WooCommerce, iar acesta este conectat la Facebook Shops prin plugin-ul “Facebook for WooCommerce“, acesta sincronizeaza automat produsele din WooCommerce cu contul dvs. de Facebook Shops. Si o face cam la 15 minute. Aceste intrari in SQL daca nu sunt controlate, puteti obtine cateva sute de mii de linii “wc_facebook_regenerate_feed” i “wp_actionscheduler_actions“.
Acest interval este ok pentru magazinele care au un numar mare de comenzi si este nevoie ca stocul produselor din Facebook Shops sa fie actualizat constant. Daca totusi considerati ca aceste sincronizari dinre Facebook si magazinul dvs. se pot face odata la 24 de ore, linia de cod de mai jos va poate ajuta.
Åbn functions.php-filen for WordPress / WooCommerce-temaet, som din butik kører på, og tilføj:
add_filter( 'wc_facebook_feed_generation_interval', function(){ return HOUR_IN_SECONDS * 24; } );
Dernæst kan vi indstille et interval på en uge for automatisk rengøring:
add_filter( 'action_scheduler_retention_period', 'wpb_action_scheduler_purge');
funktion wpb_action_scheduler_purge() {
returner WEEK_IN_SECONDS;
}
Når disse ændringer er gemt, vil du ikke længere have problemer med gigantiske borde til “wp_actionscheduler_actions”.
Fix enorme SQL -tabeller: WP_AKTIONSCHEDULER_ACTIONS_ACTIONS & WP_ACTIONSCHEDULER_LOGS [WOOCOMMOMMANCE TIPS]
Hvad er nyt
Om Stealth
Passioneret omkring teknologi, skriver jeg med glæde på StealthSettings.com siden 2006. Jeg har stor erfaring med operativsystemer: macOS, Windows og Linux, samt med programmeringssprog og bloggingplatforme (WordPress) og til webshops (WooCommerce, Magento, PrestaShop).
Se alle indlæg af StealthDu kan også være interesseret i...



En tanke på “Fix enorme SQL -tabeller: WP_AKTIONSCHEDULER_ACTIONS_ACTIONS & WP_ACTIONSCHEDULER_LOGS [WOOCOMMOMMANCE TIPS]”
@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… Wooping 9.2GB tabel fik min host til at opgive hans ellers fine opp-tid. Nu trimmer jeg med den fine kode!
Lige et spørgsmål på falde rebet denne tabel “wpb_action_scheduler_purge” er det en default i db’en eller skal jeg evt. rename den til noget i min (default hedder min db ikke ‘wp_’ ) eller er det måske en funktion?
Tak for hjælpen og den super fine artikel
Hilsen
Netzie