Databáze WordPressu: co měřit a jak uklízet bez ztráty obsahu

Web zabírá desítky gigabajtů a administrace se zpomaluje. Je problém v databázi? Možná, ale celkový prostor hostingu zahrnuje také obrázky, náhledy, zálohy a soubory WordPressu. Databázi nejprve změřte samostatně. Pak zjistěte, které tabulky rostou a zda problém ovlivňuje každé načtení stránky, jen editor nebo určitou úlohu. „Vyčistit databázi jedním kliknutím“ bez porozumění tabulkám může odstranit užitečnou historii a současně nevyřešit skutečnou příčinu.

Prostor hostingu není velikost databáze

Obrázky a jejich varianty leží typicky v souborech, články, nastavení a metadata především v databázi. Zálohovací plugin může mít archiv ve složce webu nebo mimo něj. Statistiky hostingu mohou tyto části vykazovat odděleně. Pokud panel ukazuje využitou FTP kvótu, nevyvozujte z toho velikost tabulek. Podobně malá databáze neprokazuje nízkou CPU zátěž: jeden drahý dotaz se může opakovat často.

Pro úplnou strategii kopírování a obnovy přečtěte zálohu WordPressu. Zde pracujeme s diagnostikou a řízeným úklidem. U více magazínů vždy poznamenejte doménu a databázový prefix, abyste si nespletli instalace.

Vrstva Typický obsah Jak ji měřit
Soubory Originály a varianty obrázků, pluginy, šablony FTP či panel hostingu po složkách
Databáze Články, revize, metadata, nastavení Panel DB nebo WP-CLI podle tabulek
Zálohy Archivy souborů a databáze Umístění a retenční doba nástroje
Cache Dočasné soubory či objekty Konkrétní cache vrstva a její limit

První bezpečné měření

WordPress Site Health ukáže některá upozornění k prostředí a výkonu. Pokud máte WP-CLI, příkaz wp db size --tables poskytne velikosti jednotlivých tabulek. Jde o čtení, ne o změnu dat. Zaznamenejte velikost nyní a znovu za měsíc; růst je často důležitější než samotné číslo. Sledujte zvlášť tabulky posts, postmeta, options a tabulky vytvořené pluginy. Před jakýmkoli zásahem ověřte aktuální funkční zálohu.

Je-li databáze malá, ale hostitel hlásí přetěžování, soustřeďte se na počet a cenu požadavků, ne na smazání pár revizí. Praktickou posloupnost nabízí diagnostika přetěžování hostingu. Pokud je naopak velká jedna tabulka pluginu, nejprve zjistěte její účel a podporovaný způsob čištění.

Autoloaded options: malá položka s častým dopadem

Některé hodnoty v tabulce options se automaticky načítají při každém požadavku. WordPress upozorňuje na celkovou velikost autoloadovaných options; Site Health používá jako výchozí prahovou hodnotu 800 kB, kterou lze filtrovat. Není to univerzální hranice, po jejímž překročení se web jistě rozbije. Je to signál k ověření, zda plugin neukládá velká data do části načítané zbytečně často.

Neodstraňujte neznámý řádek v options jen podle velikosti. Může obsahovat zásadní konfiguraci šablony či pluginu. Správný postup je zjistit vlastníka položky, frekvenci použití, dokumentaci a připravit návrat. Novější WordPress má funkci pro změnu autoload příznaku bez změny hodnoty, ale i ta patří do rukou správce, který ví, co položka znamená. Změny nejprve testujte na stagingu.

Položka Proč roste Bezpečný první krok
Revize článků Časté editace a automatické ukládání Vyhodnotit potřebu historie a zálohu
Postmeta SEO, šablony a další metadata Najít plugin a konkrétní typ záznamu
Options s autoloadem Nastavení a data pluginů Změřit velikost a identifikovat vlastníka
Tabulky pluginů Logy, statistiky nebo fronty úloh Prověřit oficiální retenční nastavení
Transient data Dočasná cache Zjistit, zda se přirozeně obnovují

Revize a automatické ukládání

Redakce může mít dlouhou historii úprav, zvlášť když články procházejí opakovanými aktualizacemi. Revize mají hodnotu při opravě omylu nebo kontrole změn. Jejich plošné odstranění proto není vždy úspora. Pokud se tabulka článků významně zvětšuje, zjistěte počet revizí u reprezentativních článků, interní pravidlo uchovávání a potřebu redakce. Teprve pak navrhněte retenční politiku pro budoucnost a řízený úklid historie.

Před odstraněním jakýchkoli záznamů udělejte export databáze a ověřte, že ji umíte obnovit. Užitečný test není pouze soubor na disku; na oddělené kopii musí být možné otevřít reprezentativní článek, přihlásit se a zkontrolovat obrázky. Při síti webů nezačínejte hromadně na čtyřiceti databázích. Pilot na jedné instalaci odhalí rozdíly pluginů a šablon.

Jak postupovat při úklidu bez poškození webu

  1. Uložte výchozí stav: velikosti tabulek, chování editoru, načítání stránky a dostupný prostor.
  2. Určete přesný typ dat a plugin, který ho vytváří. Zjistěte, zda má vlastní podporovaný způsob retence.
  3. Připravte čerstvou zálohu a testovací kopii. Před destruktivním krokem ověřte obnovu.
  4. Změňte jednu věc na jedné instalaci. Změřte výsledek a zkontrolujte obsah, editor, REST API a plánované úlohy.
  5. Teprve prokázaný postup přeneste na další srovnatelné weby.

Po úklidu si zapište nejen uvolněné místo, ale i to, zda se změnil výkon. Když databáze klesne o 10 % a odezva zůstane stejná, možná jste vyřešili kapacitu, nikoli hlavní příčinu pomalosti. V takovém případě hledejte dotazy, PHP procesy, cache a externí služby. Rozdíl vrstev vysvětluje průvodce zrychlením WordPressu.

Modelový příklad: rostoucí postmeta

V modelovém magazínu má databáze 1,2 GB a největší tabulkou je postmeta. Bez dalšího zjištění by bylo chybou mazat staré řádky podle data. Metadata mohou držet náhledy, nastavení bloků, SEO údaje a údaje pluginů. Správce nejprve na kopii zjistí, které typy klíčů zabírají místo a k jakým článkům patří. Teprve když se prokáže, že konkrétní plugin vytvářel nepotřebné duplicitní údaje, použije jeho dokumentovaný postup nebo připraví řízený zásah.

Výsledek ověří na reprezentativním starém i novém článku. Pokud se uvolní místo, ale ztratí se SEO popisy či funkce editoru, byl zásah špatně. Modelová čísla nejsou doporučeným limitem pro jiný magazín; rozhoduje struktura a skutečná zátěž. Na jednom hostingu navíc mohou být databáze oddělené od FTP kvóty, takže uvolnění databáze nemusí změnit ukazatel souborového prostoru.

Retence logů a dočasných dat

Část pluginů ukládá historii návštěv, pokusů o přihlášení, front rozesílek nebo chyb. Takové údaje mají různou provozní hodnotu. Než nastavíte kratší retenci, určete, jak dlouhou historii potřebujete pro řešení incidentů a zda se logy ukládají také jinde. V administraci pluginu bývá podporovaný způsob úklidu bezpečnější než ruční zásah do databáze. Pokud plugin už neběží, stále ověřte, že jeho tabulky neslouží pro migraci nebo obnovu.

Růst sledujte po jednotlivých instalacích. Jeden web může mít velkou databázi kvůli dlouhému archivu, jiný kvůli chybně se opakující úloze. Hromadné pravidlo „smazat všechno starší než rok“ by obě situace řešilo stejně, a právě tím riskovalo ztrátu dat.

Ukazatel Před změnou Po změně
Velikost databáze a největších tabulek Zaznamenat skutečné hodnoty Porovnat stejnou metodou
Čas vybrané operace v administraci Stejný článek a síťové podmínky Změřit vícekrát
Veřejná stránka Fungující text a média Ověřit beze změny obsahu
Obnova Funkční záloha Nová záloha po změně

Časté otázky

Vyřeší smazání revizí přetížený hosting?

Nelze to slíbit. Může uvolnit místo, ale CPU problém často souvisí s konkrétními požadavky, pluginy nebo databázovými dotazy. Nejdřív měřte.

Je 800 kB autoloadovaných options pevný limit?

Ne. WordPress ho používá jako výchozí práh upozornění v Site Health, nikoli jako univerzální bod selhání.

Mohu odstranit tabulky po starém pluginu?

Až po ověření, že je plugin ani jiná funkce nepotřebuje, máte zálohu a znáte způsob obnovení. Název tabulky sám nestačí.

Počítá se velikost obrázků do databáze?

Samotné obrazové soubory obvykle leží v souborovém prostoru; databáze obsahuje metadata a vazby. V panelu hostingu sledujte obě části odděleně.

Má smysl měřit databázi každý den?

U běžného magazínu stačí pravidelný trend a mimořádná kontrola při skoku, výpadku či migraci. Denní měření samo o sobě nezajistí lepší výkon.

Zdroje

Radek Vávra
Radek Vávra

Radek Vávra je šéfredaktor Podnikmag.cz. Věnuje se financím, investování a podnikání.

Články: 765