Téměř všechny webové stránky WordPress®, které jsem viděl, mají nafouklé databáze. To je docela normální. Nikdo se narodil jako odborník na budování super efektivních a optimalizovaných webů.
Když jsem začal používat WordPress®, měnil jsem témata každý měsíc a testoval jsem mnoho pluginů. Kdysi jsem četl články o „Top 21, které musíte mít pluginy“ a všechny jsem si je nainstaloval. O pár týdnů později jsem je odinstaloval.
Učíte se takto: Zkoušíte, testujete a objevujete, co potřebujete a co vám vyhovuje.
Ale po letech vám zůstane databáze WordPress® plná starých, nepoužitelných věcí. Je to proto, že databáze vašeho webu neobsahuje pouze váš obsah, ale všechna témata a nastavení pluginů.
Proč je důležité mít čistou databázi?
Jeden zákazník, blog o jídle s přibližně 10 000 návštěvami za den, zaznamenal pomalé načítání 13–15 sekund. Řešením nabízeným hostingovou společností byl upgrade na dražší hostingový plán.
Naše řešení bylo jiné – po migraci na naši hostingovou platformu jsme provedli audit webu.
Audit stránek je zdarma, pokud platíte ročně za jakýkoli hostingový plán od Simplenet ; z toho můžete těžit i vy.
V tabulce WP_options jsme objevili více než 25 000 položek databáze s Autoload nastaveným na Ano. „AutoLoad: Ano“ znamená, že když WordPress® inicializuje, přečte si tyto možnosti z databáze, která trvá asi 11 sekund.
Smazali jsme tyto staré, zbytečné možnosti a nyní se WordPress® načte za 2–3 sekundy. Také jsme optimalizovali obrázky, nahradili některé špatné pluginy lepšími a provedli další drobné úpravy.
Nepotřebovala dražší plán; zůstala u stejného plánu dalších 8–9 měsíců, dokud její návštěvnost nedosáhla ~60 000 návštěv/den, a v tu chvíli byl opravdu čas na upgrade.
Výhodou čisté databáze WordPress® bylo, že jí pomohla ušetřit peníze za webhosting, mít rychlejší web a bez námahy se škálovat na mnohem větší provoz.
Pojďme se tedy podívat, co můžete udělat pro optimalizaci vaší databáze WordPress®, abyste získali stejné výhody.
Vždy nejprve zálohujte
Před provedením jakéhokoli čištění databáze musíte vytvořit úplnou zálohu webu, včetně databáze a souborů – nebo alespoň databáze – protože tam provedeme změny. Tato ochrana vám umožní rychle obnovit váš web do předchozího stavu, pokud se něco pokazí, což vám ušetří čas, stres a potenciální ztráty.
Bez zálohy nelze obnovit omylem smazané příspěvky, stránky, uživatelské účty nebo nastavení. Chyby během čištění databáze – jako je smazání důležitých tabulek nebo poškození dat – mohou také poškodit váš web a učinit jej nepřístupným pro návštěvníky.
Svou databázi můžete exportovat z phpMyAdmin. Váš poskytovatel hostingu by měl poskytnout přístup k tomuto nástroji pro správu databáze (nebo podobnému).
Nabízíme přístup k phpMyAdmin a také k vestavěnému zálohovacímu nástroji, který můžete použít k ručnímu zálohování, kdykoli budete chtít. Také nabízíme inscenační místa. To znamená, že můžete naklonovat svůj živý web na pracovní místo a provést tam jakékoli změny, než to uděláte na živém webu.
Můžete také použít záložní plugin WordPress®, jako je:
Při použití záložního pluginu se ujistěte, že je záložní archiv použitelný mimo WordPress®. Pokud se web rozpadne, musíte být schopni obnovit bez přístupu wp-admin.
Základní čištění WordPress®
Nejjednodušší způsob, jak vyčistit databázi WordPress®, zejména pro netechnické lidi, je použít plugin WordPress®.
Nejoblíbenější pluginy pro optimalizaci databáze jsou:
Existují také moduly pro ukládání do mezipaměti a optimalizace, které mají také integrované možnosti čištění databáze, například:
Doporučujeme WP-Sweep , protože používá správné funkce mazání WordPress® co nejvíce místo spouštění dotazů MySQL pro přímé mazání.
Nainstalujte a aktivujte plugin WP Sweep a poté přejděte na Nástroje > Sweep. Uvidíte různé sekce s tlačítkem Sweep vedle nich, kliknutím na tlačítko vyčistíte nepořádek.
Tento plugin vám pomůže odstranit:
- Revize
- Automatické návrhy
- Smazané, neschválené a spamované komentáře
- Osiřelý a duplicitní příspěvek meta
- Osiřelé a duplicitní meta komentáře
- Osiřelé a duplicitní meta uživatele
- Osiřelé termínové vztahy
- Nepoužité termíny
- Přechodné možnosti
Plugin umí také optimalizovat tabulky a je to jednodušší než to dělat přes phpMyAdmin.
Dalším pluginem, který doporučujeme, je LiteSpeed Cache . Dokáže vyčistit databázi WordPress® a převést databázové tabulky z MyISAM na InnoDB.
Pomocí LiteSpeed Cache můžete také zobrazit seznam položek automatického načítání, jejich počet a velikost.
Jako bonus doporučuji plugin Scalability Pro pro WooCommerce; řeší některé problémy s nativním výkonem.
Pokročilé čištění WordPress®
Po čištění metodou Easy byste měli také zkontrolovat ručně, důkladněji, pokud existují stále věci, které lze v databázi optimalizovat.
Pro databázi WordPress® lze provést mnoho optimalizací, ale existují některé významné problémy, které by po vyřešení měla naše databáze fungovat dostatečně dobře. Zaměřme se tedy na řešení těchto problémů s nejvýznamnějším přínosem.
Jedná se o:
- čištění meta klíčů z wp_postmeta
- vyčištění položek autoload z tabulky wp_options
- obnovení ztraceného primárního klíče z tabulky wp_options
Čištění meta klíčů z tabulky wp_postmeta
I po vyčištění databáze pomocí pluginu, jako je WP Sweep, mohou v tabulce wp_postmeta stále existovat zbytečné položky, protože nebylo vyčištěno vše.
Přístup k databázi pomocí phpMyAdmin nebo jakéhokoli nástroje pro správu databáze, přejděte do tabulky wp_postmeta a podívejte se, jaké jsou položky.
Vezměme si tento příklad.

Můžete vidět, že existuje mnoho položek s předponou EG_. Můžete se zeptat na chatgpt : Jaký plugin WordPress vložil položky s předponou EG_ v mé tabulce WP_PostMeta?
ChatGTP mi říká, že je to plugin Essential Grid. Pokud již tento plugin nepoužíváte, můžete všechny tyto položky smazat ručně nebo spuštěním dotazu pro hromadné smazání.
DELETE FROM wp_postmeta WHERE meta_key LIKE 'eg_%';
Tento dotaz odstraní všechny meta klíče, které začínají např._. Nezapomeňte si zálohovat databázi nebo alespoň tabulku wp_postmeta, než začnete spouštět dotazy na vyčištění tabulky.
Opakujte proces s jakýmikoli jinými meta klíči, u kterých zjistíte, že jsou ve velkém počtu a nepoznáte, co to jsou a k čemu slouží.
Vyčištění položek automatického načítání z tabulky wp_options
Toto je problém, o kterém jsme hovořili v úvodu tohoto článku: tabulka wp_options se zaplnila položkami s hodnotou Autoload nastavenou na Yes.
Tyto záznamy se čtou při každé inicializaci WordPressu.
Nejjednodušší způsob, jak zobrazit tyto položky, je použít plugin LiteSpeed Cache a přejít do sekce Databáze. Přejděte na Souhrn databáze a podívejte se na seznam položek automatického načítání, jejich počet a velikost.

Ve výše uvedeném příkladu neexistují žádné problémy; Je to čistá databáze, ale pokud na svém webu vidíte některé obrovské položky, můžete se zeptat na Chat GPT : Jaký plugin vložil položku X do tabulky WP_options mé databáze WordPress?
Můžete tak identifikovat plugin, který tyto údaje přidal, a pokud jej již nepoužíváte, můžete příslušný záznam smazat.
DELETE FROM wp_options WHERE název_volby LIKE 'název-vaše-volby';
SQL dotaz shora smaže záznam, stačí nahradit your-option-name skutečným názvem záznamu.
nezapomeňte zálohovat databázi nebo alespoň tabulku wp_options.
Obnovení ztraceného primárního klíče z tabulky wp_options
Další problém, na který jsem narazil, souvisí s tabulkou wp_options, konkrétně existují případy, kdy tato tabulka ztratí svůj primární klíč.
Pole option_id je standardně nakonfigurováno jako primární klíč.
Primární klíč zaručuje jedinečnost každého řádku v tabulce a umožňuje indexování řádků pro rychlý přístup. Pokud máme duplicitní hodnoty a dojde ke ztrátě primárního klíče, operace s touto tabulkou budou pomalejší, protože již není možné rychle přistupovat ke konkrétnímu řádku. Provede se úplné prohledání tabulky – to znamená, že se každý řádek v tabulce přečte, aby se nalezla potřebná data, což zabere více času.
V některých situacích, jako je ruční migrace pomocí mysqldump z jednoho serveru na druhý, může tabulka ztratit svůj primární klíč, když se verze MySQL mezi servery liší.
option_id | název_možnosti |
---|---|
1 | možnost1 |
2 | možnost2 |
3 | možnost 3 |
0 | možnost4 |
0 | možnost 5 |
0 | možnost6 |
Abychom tuto situaci vyřešili, musíme ze sloupce option_id opět udělat primární klíč. Nemůžeme to však udělat, pokud existují duplicitní hodnoty, ty s 0, takže je třeba je smazat nebo přečíslovat.
Jejich odstranění resetují konfigurace motivu nebo pluginu, ale můžeme je přečíslovat. Spusťte tyto dotazy v tabulce WP_options.
Set @new_option_id: = 4; Aktualizace wp_options set option_id = (@new_option_id: = @new_option_id + 1) kde option_id v (vyberte option_id z (vyberte option_id z wp_options where option_id = 0 skupina podle možnosti, že počet (*)> 1) jako duplikáty); Odstranit z wp_options Where option_id = 0; Alter tabulka wp_options přidat primární klíč (option_id);
Dotazy, které vidíte na obrazovce, dělají následující:
- Nastaví počáteční bod pro option_id. Například číslování se ve výše uvedeném příkladu zastavilo na 3, takže jsme jako nový počáteční bod nastavili 4.
- Identifikuje duplikáty parametru option_id s hodnotou 0 a aktualizuje je novými hodnotami počínaje nastavenou hodnotou
- Odstraní všechny zbývající řádky, kde option_id je 0
- Přidá primární klíč na option_id
Nezapomeňte změnit výchozí předponu (WP_) na danou databázi a nastavte číslo podle čísla (kód používá 4 jako příklad).
Poté spusťte následující dotazy.
Alter tabulka wp_options auto_increment = 7; Alter tabulka wp_options Modify option_id BigInt (20) Unsigned ne null auto_increment; Zkontrolujte tabulku wp_options; Opravte tabulku WP_OPTIONS;
Dotazy provádějí následující:
- Nastaví novou počáteční hodnotu pro AUTO_INCREMENT na poslední číslo – v našem příkladu se zastavili na 6, takže jsme jako nový počáteční bod nastavili 7
- Zapneme auto_increment pro sloupec option_id
- Děláme kontrolní tabulku
- A opravný stůl
Znovu se ujistěte, že změňte výchozí předponu (WP_) na danou databázi. A nastavte číslo podle čísla (kód používá jako příklad 7).
Před zahájením této operace nezapomeňte zálohovat databázi nebo tabulku WP_options.
Tyto dotazy můžete spustit v phpMyAdmin (nástroj přístupný z ovládacího panelu vašeho hostingu) nebo pomocí nástroje pro správu databází, jako je Sequel Ace (Mac) nebo MySQL Workbench (Windows, Linux, Mac).
Používám Sequel Ace a dávám mu přednost před phpMyAdminem, protože je rychlejší a stabilnější. PhpMyAdmin může někdy spadnout kvůli omezením PHP, zejména na sdíleném hostingu.
Doporučené postupy, jak udržet databázi WordPress® čistou
Většina pluginů a motivů se sama o sobě nevyčistí, takže je třeba občas provést vyčištění, abyste zajistili, že je vše v nejlepším stavu.
Optimalizační pluginy mají tuto funkci plánování automatického čištění a snížení nadýmání databáze:
- FlyingPress
- WP raketa
- Perfmatters

Můžete jej nastavit na týdenní, měsíční nebo jakýkoli jiný plán.
Doporučuji také smazat nepoužívané pluginy a motivy. Pomáhá to i z bezpečnostního hlediska. Doporučuji, abyste na svém serveru neuchovávali skripty PHP (pluginy, témata, jiné soubory PHP) jiné než ty, které aktivně používáte.
Chcete-li odstranit nepoužívané pluginy, přihlaste se do wp-admin a přejděte do Plugins > Installed plugins. Kliknutím na Neaktivní zobrazíte neaktivní pluginy a odstraníte je.
Chcete-li odstranit nepoužívané motivy, přejděte na Vzhled > Motivy. Klikněte na každý motiv, který chcete odstranit, a poté klikněte na Odstranit v pravém dolním rohu.
Doporučuji, abyste si ponechali pouze své aktivní téma a jedno výchozí téma (pokud potřebujete otestovat nekompatibility).
Můžete také zabránit hromadění revizí omezením počtu revizí uložených v databázi, například 30. Přidejte následující kód do souboru wp-config.php.
define( 'WP_POST_REVISIONS', 30);
Nenechávejte komentáře neschválené – schvalte je, spamujte je nebo je zahoďte do koše.
Dejte si pozor na pluginy, které ukládají velké množství dat:
- statistické pluginy
- bezpečnostní pluginy
- antispamové pluginy
- pluginy souvisejících příspěvků
- pluginy pro sledování odkazů
Neříkám, že byste neměli používat žádný z výše uvedených pluginů, ale používejte pluginy, které tyto funkce nabízejí a ukládají data externě, nikoli do vaší databáze WordPress®.
Pokud je to možné, vyhněte se používání pluginů, které zvyšují nadýmání. Udržujte databázi WordPress® co nejlehčí. Je lepší nadýmání předcházet než léčit.
Efektivní optimalizace databáze zajišťuje rychlé, spolehlivé a škálovatelné webové stránky. Implementace osvědčených postupů může výrazně zlepšit výkon databáze a zároveň snížit provozní náklady. Pamatujte, že optimalizace databáze není jednorázový úkol, ale trvalý proces, který se vyvíjí s potřebami a růstem vašeho systému.
Děkujeme, že jste si přečetli tento článek o optimalizaci databáze. Doufám, že poskytl cenné poznatky a praktické tipy pro zvýšení výkonu vašich databází WordPress®.
Pokud máte nějaké dotazy, zpětnou vazbu nebo další techniky, o které byste se chtěli podělit, neváhejte zanechat komentář nebo se na nás obrátit. Společně můžeme vytvářet lepší, rychlejší a efektivnější webové stránky!
Zanechat odpověď