Sokan telepítik a Flamingo plugint a Contact Form 7 mellé, gyakran egyetlen célból: hogy a bejövő levelek tárgymezőjében megjelenjen egy egyedi sorszám ([_serial_number]). A CF7 plugin készítője is ezt ajánlja a honlapján.
Növekvő és lassuló adatbázis
Azt azonban kevesen tudják, hogy ennek hatalmas technikai ára lehet. A plugin ugyanis csak úgy tud sorszámozni, ha minden egyes levelet duplikálva elment a WordPress wp_posts és wp_postmeta tábláiba. Ez idővel több százezer felesleges „szemét” sort eredményezhet, drasztikusan lassítva az adatbázist. Ebben a cikkben megmutatom a tisztító SQL parancsot.
phpMyAdminban futtatható sql
Elsőnek informálódjunk! Futtasd le ezt az SQL lekérdezést az éles adatbázison. Ez csak olvas, nem módosít semmit, és egy szép összesítést ad.
-- 1. Megszámoljuk a bejegyzéseket típusonként (Üzenetek és Kontaktok)
SELECT post_type, COUNT(*) as darabszam
FROM wput_posts
WHERE post_type IN ('flamingo_inbound', 'flamingo_contact')
GROUP BY post_type;
-- 2. Megszámoljuk, hogy ezekhez pontosan mennyi META adat tartozik (ez a "súlyos" rész)
SELECT p.post_type, COUNT(*) as meta_sorok_szama
FROM wput_postmeta pm
INNER JOIN wput_posts p ON pm.post_id = p.ID
WHERE p.post_type IN ('flamingo_inbound', 'flamingo_contact')
GROUP BY p.post_type;Mit fogsz látni?
Két táblázatot kapsz eredményül:
- Az első táblázat megmutatja a levelek számát
- A második táblázat: megmutatja, hogy ez a fenti levelek hány (száz)ezer sort foglal el a
postmetatáblában.
Ha megvannak a számok, és látod, hogy tényleg ez a szemét foglalja a helyet, akkor jöhet a törlés.
Figyelem!
Mielőtt ezt futtatnád, készíts biztonsági mentést az adatbázisról! A parancsban szereplő wp_ előtagot cseréld le a sajátodra (pl. wput_), ha eltérő.
Ez a kódsorozat három lépésben távolítja el a Flamingo által felhalmozott adatokat, miközben nem bántja a Contact Form 7 beállításait vagy a CFDB7 pluginban tárolt (valós) mentéseket.
-- 1. Lépés: A legdurvább helyfoglalók (meta adatok) törlése
-- Ez törli a technikai szemetet (IP címek, user agentek, logok) a postmeta táblából.
DELETE pm
FROM wp_postmeta pm
INNER JOIN wp_posts p ON pm.post_id = p.ID
WHERE p.post_type IN ('flamingo_inbound', 'flamingo_contact');
-- 2. Lépés: A bejövő üzenetek törlése
-- Ez távolítja el magukat a levél-duplikátumokat a posts táblából.
DELETE FROM wp_posts
WHERE post_type = 'flamingo_inbound';
-- 3. Lépés: A kényszerített címtár törlése
-- A Flamingo minden feladót elment "kapcsolatként". Ha nincs rá szükséged, ez is törölhető.
DELETE FROM wp_posts
WHERE post_type = 'flamingo_contact';Másik opció: Contact Form 7 Database Addon
Amennyiben menteni szeretnénk a CF7-ből érkező adatokat, használjuk a Contact Form 7 Database Addon – CFDB7 nevű plugint. Ez a bővítmény saját adattáblát készít, így nem szemeteli tele a wp_postmeta és wp_posts táblákat, amelyek egyébként is hajlamosak a kritikus méretűre hízni.




Vélemény, hozzászólás?