WordPress adatbázis optimalizálás: teljes útmutató a gyorsabb weboldalhoz

6 perc olvasás

A WordPress minden tartalmat, beállítást és sok bővítményadatot MySQL vagy MariaDB adatbázisban tárol, és minden oldalbetöltésnél lekérdezéseket futtat rajta. Az évek során az adatbázisba sok felesleges adat kerül: régi bejegyzés-változatok, spam hozzászólások, lejárt ideiglenes adatok, törölt bővítmények beállításai. Egy elhanyagolt adatbázis lassítja az oldalt, különösen az admin felületet és a webáruházak dinamikus oldalait, a mentéseket pedig nagyobbá és lassabbá teszi.

Ebben az útmutatóban megmutatjuk, mitől hízik meg az adatbázis, hogyan ismerd fel a bajt, hogyan tisztítsd és optimalizáld biztonságosan bővítménnyel, phpMyAdminnal és WP-CLI-vel, és hogyan előzd meg, hogy újra elhanyagolttá váljon.

Mitől hízik meg az adatbázis?

  • Bejegyzés-változatok (revíziók): a WordPress minden mentéskor elteszi a bejegyzés korábbi változatát. Egy sokat szerkesztett oldalnak több tucat revíziója is lehet.
  • Automatikus piszkozatok és lomtár: a törölt, de a lomtárban maradt bejegyzések és oldalak.
  • Hozzászólások: spam, lomtárba tett és jóváhagyásra váró hozzászólások.
  • Átmeneti adatok (transientek): a bővítmények által ideiglenesen tárolt adatok; a lejártak egy része nem törlődik magától.
  • Árva adatok: törölt bejegyzésekhez, felhasználókhoz vagy kifejezésekhez tartozó metaadatok.
  • Törölt bővítmények maradványai: beállítások a wp_options táblában, saját táblák.
  • Naplók és statisztikák: egyes biztonsági, statisztikai és átirányítási bővítmények nagy naplótáblákat építenek.
  • Webáruház: a WooCommerce munkamenetei, a háttérfeladatok (Action Scheduler) naplói és a régi rendelési adatok.

Az autoload és a wp_options tábla

A wp_options tábla különösen fontos. Az itt tárolt beállítások egy része automatikusan betöltődik (autoload) minden oldalbetöltésnél, akkor is, ha az adott oldalon nincs rájuk szükség. Ha ez a mennyiség megnő (például egy törölt bővítmény ottfelejtett, nagy beállításai miatt), minden oldal lassul. A WordPress az Eszközök › Webhely állapota oldalon figyelmeztet, ha az automatikusan betöltött adatok mérete túl nagy. Hogyan mérd meg, és hogyan csökkentsd biztonságosan, a wp_options és az autoload adatok átvizsgálásáról szóló tudásbázis-cikk mutatja be; a felduzzadt wp_postmeta táblát külön cikk tárgyalja.

A lassú adatbázis jelei

  • az admin felület lassú, különösen a bejegyzés- és rendeléslisták,
  • a Webhely állapota oldal figyelmeztet az automatikusan betöltött beállításokra,
  • a mentések egyre nagyobbak és lassabbak,
  • a tárhely erőforrás-statisztikái magas CPU- vagy IO-használatot mutatnak,
  • a Query Monitor bővítmény lassú vagy nagyon sok lekérdezést jelez.

Előtte: mentés

Az adatbázis tisztítása nem visszafordítható. Mindig készíts mentést előtte. cPanelben a phpMyAdminban az adatbázis exportálásával, vagy a Backup menüpontban az adatbázis letöltésével; az aWh cPanel és WordPress tárhelyein ezen felül a napi JetBackup mentésből is visszaállíthatsz. A mentés és visszaállítás lépéseit a fájlok és adatbázisok mentésből való visszaállításáról szóló cikk írja le.

Tisztítás bővítménnyel

A legegyszerűbb út egy erre szolgáló bővítmény:

  • WP-Optimize: revíziók, piszkozatok, spam, lejárt transientek törlése és a táblák optimalizálása, ütemezhetően.
  • Advanced Database Cleaner: az árva adatok és a törölt bővítmények által hátrahagyott táblák és beállítások felderítésére is jó.

Ajánlott lépések:

  1. Futtasd a revíziók, automatikus piszkozatok, lomtár, spam és lejárt transientek törlését.
  2. Nézd meg az árva beállításokat és táblákat, de csak azokat töröld, amelyekről biztosan tudod, hogy egy már nem használt bővítményhez tartoznak.
  3. Optimalizáld a táblákat.
  4. Ellenőrizd az oldalt és az admin felületet.

A tisztítás után a bővítményt ki is kapcsolhatod, vagy ütemezett, havi futtatásra állíthatod.

Haladóknak: phpMyAdmin és WP-CLI

phpMyAdmin (cPanelben a Databases csoportban):

  • Az adatbázist megnyitva a táblák mérete és sorainak száma alapján látod, hol van a legtöbb adat.
  • A táblák kijelölése után az „Optimize table” paranccsal a táblák újraszervezhetők. Az InnoDB tábláknál ez a teljes tábla újraépítését jelenti, ami nagy táblánál időbe telik, és közben a tábla zárolva lehet, ezért alacsony forgalmú időszakban futtasd.
  • SQL-lekérdezésekkel közvetlenül is törölhetsz (például a revíziókat), de ez csak akkor ajánlott, ha pontosan érted a WordPress táblaszerkezetét. A táblaelőtag nem mindig wp_.

A phpMyAdmin alapjairól külön cikkünk szól.

WP-CLI (ha a csomag SSH-t is tartalmaz):

wp db size --tables          # a táblák mérete
wp transient delete --expired # a lejárt átmeneti adatok törlése
wp post delete $(wp post list --post_type=revision --format=ids) --force  # revíziók törlése
wp db optimize               # a táblák optimalizálása

Előtte a wp db export mentes.sql paranccsal készíts mentést. Az aWh cPanel tárhelyein a wp db export és a wp db optimize nem fut le, mert a proc_open PHP-függvény biztonsági okból le van tiltva; ott a mentést a mysqldump paranccsal, az optimalizálást a phpMyAdminban végezd. A lépéseket a WP-CLI használatáról szóló tudásbázis-cikk írja le.

Megelőzés

Revíziók korlátozása. A wp-config.php fájlban a revíziók számát korlátozhatod (a „That’s all, stop editing!” sor elé írva):

define( 'WP_POST_REVISIONS', 10 );

Lomtár ürítése. Alapértelmezésben a WordPress 30 nap után üríti a lomtárat; ezt rövidebbre is állíthatod (define( 'EMPTY_TRASH_DAYS', 7 );).

Bővítmény-higiénia. Csak a szükséges bővítményeket tartsd meg, és ha törölsz egyet, nézd meg, hogy van-e „adatok törlése eltávolításkor” beállítása. A bővítmények kezeléséről bővítményes útmutatónk szól.

Naplók korlátozása. A biztonsági, statisztikai és átirányítási bővítményeknél állítsd be, hogy a régi naplóbejegyzések egy idő után törlődjenek.

Webáruháznál. Kapcsold be a WooCommerce nagy teljesítményű rendeléstárolását (HPOS), amely a rendeléseket saját, optimalizált táblákban tárolja, és állítsd be, hogy az Action Scheduler régi, befejezett feladatai törlődjenek.

Ütemezett karbantartás. Havonta egyszer futtasd le a tisztítást (bővítménnyel ütemezve vagy cron feladattal); a cron job cPanelben való beállításáról külön útmutatónk szól.

Objektum-gyorsítótár. Nagy forgalmú oldalon vagy webáruházban egy perzisztens objektum-gyorsítótár (például Redis) a gyakori lekérdezések eredményét a memóriában tartja, ami sokat csökkenti az adatbázis terhelését. Ehhez jellemzően VPS kell.

A tárhely szerepe

Az adatbázis sebessége a tárolótól is függ: egy WordPress oldal rengeteg apró olvasási és írási műveletet végez, amelyekben az NVMe SSD sokszorosan gyorsabb a hagyományos SSD-knél és merevlemezeknél. Az aWh WordPress tárhelyei és cPanel tárhelyei NVMe SSD-n futnak, korlátlan számú adatbázissal. Ha az oldalad a tisztítás után is rendszeresen eléri a csomag erőforrás-limitjeit, egy nagyobb csomag vagy egy KVM VPS lehet a következő lépés.

Összefoglalás

Az adatbázis karbantartása egyszerű, ha rendszeresen csinálod: mentés, revíziók, lomtár, spam és lejárt átmeneti adatok törlése, az árva bővítményadatok óvatos eltávolítása, táblaoptimalizálás. A revíziók korlátozásával, a bővítmény-higiéniával és a havi ütemezett tisztítással megelőzheted, hogy az adatbázis újra elhízzon.

Gyakori kérdések

Biztonságos az adatbázis optimalizálása?

Igen, ha előtte mentést készítesz, és csak azt törlöd, amiről tudod, mi. A revíziók, a spam és a lejárt transientek törlése biztonságos; az árva táblák és beállítások törlésénél légy óvatos.

Milyen gyakran kell tisztítani?

Egy átlagos oldalon havonta vagy negyedévente elég; webáruháznál és sokat szerkesztett oldalnál gyakrabban is érdemes.

Törölhetek a wp_options táblából kézzel?

Csak akkor, ha pontosan tudod, melyik bejegyzés melyik (már nem használt) bővítményhez tartozik. A WordPress és a működő bővítmények beállításainak törlése hibákat okoz. Előtte mindig ments.

Okozhat leállást az optimalizálás?

Nagy táblák optimalizálásánál a tábla rövid időre zárolva lehet, ami lassulást okozhat. Ezért alacsony forgalmú időszakban futtasd.

Mi a különbség a tisztítás és az optimalizálás között?

A tisztítás a felesleges adatokat törli, az optimalizálás a táblák belső szerkezetét rendezi újra, és felszabadítja a törlés után üresen maradt helyet.

Lassít a sok revízió?

Kis mennyiségben alig, de egy sokat szerkesztett oldalnál a revíziók az adatbázis jelentős részét adhatják, és lassíthatják az admin felületet és a mentéseket. Korlátozd a számukat a wp-config.php fájlban.

Kell külön bővítmény, ha cPanelem van?

Nem feltétlenül: a phpMyAdminnal és WP-CLI-vel bővítmény nélkül is elvégezheted. A bővítmény a kényelmesebb, különösen ha ütemezett tisztítást szeretnél.

Vissza a blogra