Cum ne curatam baza de date ?

Problema e destul de simplu de explicat : sa zicem ca adaugam 50 de articole de cite 2-3-5 MB bucata in wordpress. Ca asa avem noi chef.

Cum wordpress obisnuieste sa salveze "revizii" ale articolelor, vom avea fiecare chestie salvata si de cite 2-3-5 ori, vorba ceea, sa fie. Nu-i ca si cum resursele sunt limitate pe lumea asta. Moment in care, luind asa estimativ niste medii, 3 Mb x 3 exemplare x 50 bucati = 450 MB.

Problem ? Pai depinde. Precum probabil ati observat serverele mele n-au ciriit, Trilema servindu-se in continuare fara mari probleme. Apropo de care chestie :

Mnoa, lasind la o parte ca "serveru' mediu" nu-i capabil sa sustina GBps ore in sir (ati vazut ce lejer livra pagini, apropo ? tucu-le tati pe ele de mumoase si daastepte), ramine problema ca daca incerci sa rulezi un shared cu juma' de giga-n mysql ai bune sanse sa n-ai nici o sansa.

Ce-i de facut ?

Una dintre solutii ar fi sa curatati baza de date de "revisions", acele versiuni mai vechi ale articolelor publicate, salvate ca sa fie. Chestia asta se realizeaza destul de simplu, din PhpMyAdmin. Introduceti in cutiuta de-i zice SQL urmatoarea dispozitie :

DELETE a,b,c FROM prefix_posts a

LEFT JOIN prefix_term_relationships b ON ( a.ID = b.object_id)

LEFT JOIN prefix_postmeta c ON ( a.ID = c.post_id )

LEFT JOIN prefix_term_taxonomy d ON ( b.term_taxonomy_id = d.term_taxonomy_id)

WHERE a.post_type = 'revision' AND d.taxonomy != 'link_category';

inlocuind bineinteles "prefix_" cu prefixul folosit de instalarea dvs. (in general, "wp_").

Ce face chestia asta ? Pai, sterge toate articolele care-s revizii, precum si toate mentiunile referitoare la ele (si numai la ele) din alte tabele in care wordpress isi tine matele.

Dupa care

Pai ca din tabela cu articole am scapat de 100Mb, adica aproximativ jumatate, si din tabela cu taxonomie de inca vreo suta sau asa de kb, diverse rahaturi si mizerii. Moment la care dam un "select all tables with overhead" si apoi "with selection optimize table". Chestia asta prinde bine din cind in cind oricum, e un fel de defrag pentru mysql, sa zicem asa.

Inainte de-a sari careva expert cu intrebari ca de ce-am scris chestia asta, ca cum imi permit io sa scriu chestii la mine pe blog si-asa mai departe, precizez c-am scris-o ca sa nu mai trebuiasca sa compun query-ul data viitoare cind am nevoie de el, ci sa-l iau pur si simplu cu copy/paste. Ceea ce va doresc si dumneavoastra.

« Rezultate la Bacalaureat, sesiunea Iunie 2011, municipiul Bucuresti, RODINCIUC - ZVINCA

Open office uber alles »

Category: 3 ani experienta

Friday, 08 July, Year 3 d.Tr.

Reply to this note

Please Login to reply.

Discussion

#[0]