Jak vyčistit databázi WordPress

·

·


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.

Automaticky načíst položky zobrazené v pluginu LiteSpeed ​​Cache

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_idnázev_možnosti
1možnost1
2možnost2
3možnost 3
0možnost4
0možnost 5
0mož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
Plánovaná optimalizace 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!

Avatar Andrei Chira

Komentáře

11 odpovědí

  1. Úžasný zdroj o čištění databáze WP. Děkujeme za sdílení.

    1. Děkuju. Pokud potřebujete nějaké další informace nebo návody, které bychom mohli napsat, dejte nám prosím vědět.

  2. Zkoušeli jste TablePlus? Je to podobné jako Sequel Pro, ale podporuje více ovladačů.

    1. Až do teď jsem o tom neslyšel.

  3. Používám Akismet. Mám to také odstranit? Několikrát jsem vyzkoušel bezplatnou verzi UPDRATPLUS, ale vždy došlo k vyčerpání paměti a výpadku stránky. Zvýšená paměť v php.ini a vyzkoušeno, ale bez úspěchu. Mám Godaddy sdílený Linux hosting.

    1. Preferuji Antispam Bee , myslím, že je v boji proti spamu účinnější než Akismet.
      Většina zálohovacích pluginů má problémy se sdíleným hostingem, řešení, které by mohlo fungovat lépe, je použít ManageWP nebo WP Time Capsule .
      Tato řešení provádějí přírůstkové zálohy, takže nedochází k žádné komprimaci a komprimování, což spotřebovává méně prostředků serveru.

  4. S pomocí znalostí získaných z vašeho článku k vyčištění databáze se ukázalo, že je to docela snadné a bez chyb a problémů.

  5. Toto je opravdu skvělý článek, děkuji za sdílení a rád bych řekl, že sdílejte své informace i nadále.

  6. Děkuju.
    Funguje jako kouzlo!

  7. Velmi dobré sdílené informace, děkuji za ně.

  8. Velmi pěkný sdílený článek, díky za něj.

Zanechat odpověď

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *