Curatare baza de date de pluginuri vechi sterse

crystygye

Well-Known Member
Registered
Full Member
Cand instalezi un plugin iar apoi il stergi ca nu mai ai nevoie de el, sau ca ai facut o proba cu el, chiar daca l-ai sters si fizic nu mai exista in folderul din host, majoritatea din ele lasa urme in baza de date, in tabele mai exact.

Partea rea este ca nu sunt tabele principale, ci si baga in wp_options in general, unde vor fi foarte greu de gasit.

Daca ai un site pe care probabil in 1-2 ani ai instalat 100 de pluginuri si ai ramas cu 10, fi sigur ca load va fi mai mare chiar daca acele pluginuri nu vor mai exista, iar baza de data mai mare decat ar trebui.

INAINTE SA INCEP: nu recomand modificari de genul asta fara backup inainte (puteti pierde tot in 1 seconda de neatentie), persoanelor cu cunostinte mici, cei care nu au access la phpmyadmin.

Ok, in primul rand daca ati avut multe pluginuri instalate este aproape imposibil sa mai stiti ce pluginuri ati incercat. Apoi treaba sta nasol ca in baza de date nu veti gasi numele la plugin, cum il vedeti in wordpress.

Dar sa va arat catre trick-uri care va pot face viata usoara.
Mai intai va logati in phpmyadmin si selectati baza de date a site-ului.
Apoi deschideti 2 taburi la SQL (acolo unde folositi comenzi sql pe baza de date).

1. Toate pluginurile cum bine stiti pot fi mari, mici, avea load mare, load mic, necesita resurse mari, mici ; etc...
Vom folosii o comanda care ni le va arata pe primele 10 sau 50 sau 100 cate dorim, in functie de marimea lor.

SELECT option_name, length(option_value) AS option_value_length FROM wp_options WHERE autoload='yes' ORDER BY option_value_length DESC LIMIT 50;

DESC LIMIT 50 = in oridine descrescatoare (ceea ce si vrem) si primele 50 (puteti pune 10 sau cat vreti voi)

Acum ne va afisa primele 50 (in cazul de fata) mai importante.

2. Copiati fiecare linie din cele 50 si tastati pe google daca nu stiti de unde provine. In felul asta in 80% din cazuri veti gasi din prima pluginul cu pricina ce foloseste acel nume in baza de date.
Daca il aveti pe site sau aveti nevoie de el, il omiteti.

Si tot asa pana sa zicem ca am da de cateva vechi de care nu mai avem nevoie.

3. Odata indentificate pluginuri ce nu mai sunt si nu mai avem nevoie, le vor cauta si sterge.
Spre ex avem un fost plugin wptouch si el a creat 5-10 tabele wp_touch in baza de date.

Mergem in celalalt tab SQL si cautam toate tabelele wp_touch prin comanda asta:

SELECT *

FROM `wp_options`

WHERE `autoload` = 'yes'

AND `option_name` LIKE '%wp_touch%'

Pentru alte denumiri schimbati doar wp_touch sau puteti pune doar touch fara wp_, din textul de mai sus.

4. Odata gasite toate tabelele create de acel plugin wp_touch , verificam daca toate corespund cu wp_touch si nu avem si alte lucruri pe langa, apoi le selectam si stergem.

5. Dupa fiecare stergere verificati site sa fie ok. Dupa ce ati verificat primele 50-100 de la punctul 1, si ati scapat de pluginuri vechi ce si-au lasat urma si totul este ok, resetati serverul si/sau rulati o optimizare la baza de date cu wp-optimize sau ce plugin folositi voi.

Va puteti testa serverul si site inainte si dupa sa vedeti ca aveti de castiga de pe urma unui clean de genul asta.
Din pacate nu exista plugin asa avansat sa rezolve problema asta. Sunt cateva dar nu gasesc nici 30% din ce faceti prin acest tutorial.
 
Ultima editare:
BONUS:
Poate sunt oameni care nu au habar ca in wordpress la posts au tags si multe probabil nu mai au nici o legatura catre nimic. Si stau degeaba si ocupa loc.
Puteti sterge tagurile ce au count 0 manual, dar in cazul in care sunt multe, uitati o comanda SQL pentru baza de date ce le sterge pe toate cu count 0 intr-o secunda:

Comanda sql delete un-used tags:
DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE count = 0 );
DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);

Copy paste la SQL cu TOTUL (ambele linii odata), apoi execute si confirmare.
 
Loading...
Back
Sus