Jak pročistit databázi WordPressu

27. června 2014

Pojďme se podívat na to, jak pročistit databázi svého webu běžícím na redakčním systému WordPress.

Proč ale něco takového dělat? Protože po několika letech provozu se snad v každé databázi nahromadí zbytečné záznamy a ty jen zabírají místo a snižují tak celkový výkon.

Jakou část budeme čistit?

V tomto článku se detailně podíváme jen do jedné tabulky. A to sice wp_options. Ta uchovává v mezipaměti poměrně dost informací a ukládají se do ní i informace o šablonách a pluginech, které většinou už nejsou ani třeba. Protože se zkrátka po deaktivaci a smazání šablony či pluginy nevymažou. Tak jim pojďme trochu pomoci.

Mazání záznamů „_transient_“

Prvním adeptem na smazání budou záznamy _transient. Ty si WordPress vytváří sám a ve starších verzích už bohužel nemaže. Pokud tedy nemáte nový web běžící na nejnovější verzi WP, pravděpodobně budete mít ve své databázi desítky a možná i stovky těchto záznamů. A zcela zbytečně.

Na různých fórech se dají najít i témata, kde si autor stěžuje na příliš velkou databázi a posléze zjišťuje, že v tabulce wp_options má tisíce řádků _transient. Jde tedy o poměrně rozšířený problém, který má snadné řešení. Pro zajímavost, na svém blogu jsem smazáním ušetřil asi sto řádků.

A jak tedy záznamy snadno smazat?

Je to skutečně otázkou několika minut. Přihlaste se do phpMyAdmin a přejděte na svou databázi. V ní pak klikněte na záložku SQL a spusťte následující požadavek:

DELETE FROM `wp_options` WHERE `option_name` LIKE ( '_transient_%' );

Po provedení dojde ke smazání řádků a vaše databáze bude pročištěna. Jen dodám, že pokud si nejste jisti, že toto zvládnete, raději si udělejte zálohu vaší databáze před tímto zákrokem. Pro jistotu.

Zde ještě přikládám obrázek, aby vše bylo maximálně názorné.

Příkaz do databáze.

Jak na čištění po pluginech…

Jak už bylo řečeno v úvodu, do tabulky wp_options se ukládají i informace o pluginech. Jejich nastavení a podobné drobnosti. Jenže po smazání pluginu v tabulce tyto záznamy pořád zůstávají. To by nebyl takový problém, protože většina pluginů vytvoří zhruba jen 20 řádků. Jenže po letech experimentování a střídání pluginů to už problém je.

Tabulka zbytečně obsahuje stovky řádků, které nejsou používány a nikdy už k ničemu nebudou. Nyní vám proto poradím, jak je smazat.

V první řadě je třeba udělat zálohu databáze. A teď bych ji už doporučil každému. Nikdy totiž nevíte. Poté si otevřete stránku /wordpress/wp-admin/options.php a přihlaste se do ní. To vás přesměruje do nastavení pro vývojáře a uvidíte dlouhý výpis databázové tabulky wp_options vašeho webu.

V tomto seznamu nyní zkuste najít řádky, které patří nepoužívaným či už smazaným pluginům. Je to dřina, protože nic není jednoznačné a musíte se v databázi opravdu vyznat a vědět, který plugin byl na webu nainstalován. Ale pokud tuto tabulku chcete skutečně pročistit, snadnější řešení neexistuje.

Pro zjednodušení vám zkusím ukázat příklad ze své databáze, kterou jsem před několika dny pročistil. Například jsem našel záznamy, které začínají wp125_. Zapátral jsem v paměti a hned mi bylo jasné, že se jedná o záznamy k pluginu WP125, který jsem před lety používal. Už je ovšem smazaný a řádky jsou v databázi zbytečně.

Použijeme proto stejný zápis jako u mazání _transient a smažeme tyto nepoužívané informace z databáze.
Příkaz tedy bude v tomto případě znít:

DELETE FROM `wp_options` WHERE `option_name` LIKE ( 'wp125_%' );

Po provedení dojde ke smazání informací o tomto pluginu z databáze a my si to celé můžeme ověřit pomocí výpisu databázové tabulky v našem WordPressu. Pokud tam již záznamy nebudou, vše proběhlo v pořádku a je uklizeno.

Čištění po smazaných šablonách

Stejný postup jako u pluginů můžeme použít u již nepoužívaných či smazaných šablonách. Ty si též ukládají některé informace do tabulky wp_options a zbytečně tam zabírají místo, protože nikdy (bez našeho zásahu) nedojde k jejich smazání i po deaktivaci a odstranění šablony.

Opět uvedu příklad. Ve výpisu jsem našel záznamy, které začínají woo_. Trochu jsem zapátral v paměti a uvědomil si, že jsem používal šablony od WooThemes. A sedělo to.

Zbytečné záznamy v databázi.

Opět pro smazání použijeme totožný postup. Přihlásíme se do phpMyAdmin, klikneme na databázi a následně záložku SQL, do které vložíme příkaz pro smazání. V tomto případě se jednalo o tento:

DELETE FROM `wp_options` WHERE `option_name` LIKE ('woo_%');

Po provedení příkazu je databáze menší a zbytečné informace o staré šabloně smazány. Jak jistě chápete, stejný postup můžete použít u všech šablon a pluginů, které se vám podaří najít. Já na svém webu smazal asi 3 informace o pluginech a 4 informace o šablonách, které jsem už dlouhé roky měl z redakčního systému smazané. Ale jak vidno, z databáze ne.

Jeden malý tip závěrem článku

Celý tento článek byl ve své podstatě o čištění tabulky wp_options. Jenže některé pluginy si vytvářejí tabulky vlastní. V takovém případě vám doporučuji plugin Plugins Garbage Collector. Ten takové tabulky najde a přímo z rozhraní vám umožní zbytečné tabulky smazat. Také vám zobrazuje, jaké tabulky jsou používány konkrétními pluginy, které pluginy (a jejich tabulky) jsou momentálně deaktivované a které můžete bezpečně smazat.

Je to opravdu velký pomocník v čištění databáze a pokud vám běží web již dlouhé roky, tento plugin nějakou zbytečnou tabulku ke smazání dozajista najde.

Štítky: WordPress
Tomáš Erlich

Autor, minimalista. Na internetu vystupující pod přezdívkou Carl114.

Mohlo by vás také zajímat

Nejnovější

1 komentář

  1. PZ

    Dub 11, 2016 v 12:55

    Čištění po smazaných šablonách

    Stejný postup jako u pluginů můžeme použít u již nepoužívaných či smazaných šablonách.
    oprava:
    Stejný postup jako u pluginů můžeme použít u již nepoužívaných či smazaných šablon.

    Jen chybička co sem našel jinak super članek, hodně pomoh!! :)

    Odpovědět

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *