How to clean huge wp_options in SQL – Transients, wpseo_sitemap_cache_validator

WordPress este un CMS destul de light pentru serverele web. Cerinte minime de resurse hardware si un web server cu suport HTTPS pe care sa avem instalate: PHP, MySQL, NGINX sau Apache.
Probleme in WordPress pot sa apara atunci cand folosim diverse module (plugins) care au brese de securitate sau nu sunt optimizate afecteaza baza de date. De cele mai multe ori, tabelul wp_options este cel care are de suferit.

Un astfel de scenariu este cel in care diverse module nu sterg intrari cache sau transientii expirati din MySQL. Tabelul wp_options ajunge in timp la un volum foarte mare, ceea ce provoaca un consum de resurse CPU, RAM nejustifcat de mare. In aceste conditii timpul de incarcare al unui website cu WordPress creste foarte mult sau se poate ajunge la probleme majore de functionalitate.

De-a lungul timpului am identificat doua module care din cauza lipsei sau a functionarii incorecte a serviciului CRON, intrarile SQL expirate (cache si transients) raman si populeaza in numar foarte mare baza de date.

Huge SQL Table wp options
Huge SQL Table

740 MB pentru tabelul wp_options este foarte mare si nejustificat in acelasi timp. Intr-un tabel in care in mod normal sunt salvate setarile core ale WordPress si ale modulelor instalate.

Cum stergem din MySQL wp_options liniile wpseo_sitemap_cache_validator?

In versiunile mai vechi ale Yoast SEO a existat un bug ce a facut ca vechile intrari cache pentru sitemap sa ramana in baza de date, in tabelul wp_options, chiar daca ele nu mai erau de actualitate si in mod normal ar fi trebuit sa dispara. Sa fie sterse.

Am descoperit in MySQL un numar important de linii wpseo_sitemap_cache_validator care ocupau un spariu unutil.

wpseo sitemap cache validator
wpseo sitemap cache validator

Stergera acestor linii din baza de date nu reprezinta nici un risc, insa este recomandat ca inainte de orice comanda executata in SQL sa faceti un backup.
Pentru a sterge liniile wpseo_sitemap_cache_validator din wp_options este suficient sa selectati baza de date si sa executati comanda SQL:

DELETE FROM wp_options WHERE option_name LIKE ('%\wpseo_sitemap\_%')

Cum stergem transientii (WooCommerce Transients) expirati din SQL – wp_options

Transientii (WordPress Transients) sunt folositi de plugin-uri si teme pentru a stoca temporar informatii in baza de date. Acest lucru optimizeaza viteza de incarcare a site-ului si face posibila functionarea corecta a unor elemente.

In mod normal, transientii expirati trebuie sa se starga automat din baza de date, insa nu mereu se intampla acest lucru. Module precum Facebook si WooCommerce creeaza foarte multi transienti, iar acestia daca nu sunt stersi automat, vor popula semnificativ baza de date. Scenariu in care trebuie sa intervenim si sa-i stergem manual.

Mergem in baza de date, la SQL si executam linia de comanda:

DELETE FROM wp_options WHERE option_name LIKE ('%\_transient\_%')

Daca a fost sters un numar mare de transienti o sa observam imediat o viteza superioara de incarcare a paginilor web si un consum mai mic de CPU pentru procesele puse de SQL.

Pasionat de tehnologie, imi place sa testez si sa scriu tutoriale despre sistemele de operare macOS, Linux, Windows, despre WordPress, WooCommerce si configurare servere web LEMP (Linux, NGINX, MySQL si PHP). Scriu pe StealthSettings.com din 2006, iar cativa ani mai tarziu am inceput sa scriu pe iHowTo.Tips tutoriale si noutati despre device-uri din ecosistemul Apple: iPhone, iPad, Apple Watch, HomePod, iMac, MacBook, AirPods si accesorii.

Leave a Comment