V poslední době mi začal backend zlobit mého magazínu, kdy po kliknutí na jakoukoli část (pluginy, stránky, příspěvky…) vše trvalo strašidelně dlouho. Nejprve jsem podezříval hosting, ale z podpory mi přišla odpověď, že tam problém není.
Postupným zkoumáním jsem následně zjistil, že u daného webu velikost SQL databáze přesahovala 160 MB. Na hostingu, kde mám povolené 100 MB velikosti databází asi docela problém :D.
Na tomto mém webu jsem totiž v průběhu let testoval hromadu různých pluginů, které sice lze vymazat z prostředí WordPressu, ale některé z nich po sobě zanechají nepořádek a neodstraní všechna data z databáze.
A jelikož se mi ručně databáze procházet nechtěla, začal jsem hledat nástroj, který mi by s optimalizací pomohl. Vláďa Musílek na svém webu doporučoval plugin WP Optimize. Jal jsem se tedy plugin vyzkoušet.
Jak postupovat při zmenšení databáze?
- Přihlaste se ke svému hostingu a nejprve si udělejte zálohu SQL databáze. Tento krok doporučuji udělat vždy. Může se totiž stát, že vyčištění databáze s sebou vezme i nějakou fungující část webu. A pak bude nutné muset sáhnout k obnově databáze z předem uložené zálohy.
- Naistalujte si plugin WP Optimize a aktivujte jej.
- Po aktivaci pluginu klikněte na pole Optimizer.
- V části Clean-up options vyberte, které části chcete optimalizovat. Pozor! Ve výchozím nastavení jsou zároveň vybrány neschválené komentáře i spam (a tak budou v rámci optimalizace smazány). Věřím, že spamy budete chtít smazat, ale já si třeba neschválené komentáře odškrtl, aby mi na webu zůstaly :).
- Celý proces dokončíte kliknutím na tlačítko Proceed.
A jaké byly výsledky optimalizace?
Velikost databáze u mého magazínu na začátku dosahovala velikosti 167,3 MB, díky pročištění jsem dosáhl zmenšení na 63,3 MB (zmenšení o 62%).
Databáze tohoto mého blogu měla 71,3 MB, po pročištění 10,9 MB (zmenšení o 85%).
Závěr
Ani jsem nečekal, jak hodně se mi podaří velikost databáze zmenšit. Klíčová pro mě však nebyla cílová velikost, ale vliv na obsluhu WordPressu. Zde naštěstí došlo k výraznému zrychlení odezvy při práci v administraci a tedy k tomu, co jsem očekával:).
Pokud tedy, stejně jako já, hojně testujete různé pluginy. Určitě plugin WP Optimize využijte, slibuji, že nebudete zklamáni ;).
Funguje to velmi dobře, vyplatí se i nastavit pravidelné mazání spamů a koše. Většina antispam pluginů to totiž nemaže, ale nafláká to do koše. Když je nějaká nová spamovací kampaň, není problém ani několik tisíc spamů za den a to už je na výkonu DB poznat.
Jinak pozor na některá nastavení, je lepší před „úklidem“ zálohovat DB. Většinou je vše ok, ale už jsem zažil, že se něco rozbilo. Pokud nastavujete automatické mazání, nastavte si taky automatické zálohy DB!
Zbyňku,
s těmi zálohami máš pravdu. Proto jako jeden z doporučených kroků uvádím právě prvnotní vytvoření zálohy databáze :).
Automatický „úklid“ jsem zatím nezkoušel, ale věřím, že v některých případech může být hodně zajímavý – díky za tip ;).
Díky za tip vyzkouším a napíšu, jak se zadařilo. :)
Járo,
vyzkoušej, určitě nebudeš zklamanej ;)
Doporučuji vyzkoušet i WP-Sweep. Při optimalizaci používá jiné funkce a nepoužívá MySQL dotazy. WP-optimize dělá přesný opak.
Výsledky se tak mohou lišit.
Lukáši,
díky za tip :). Plugin jsem teď zkoušel a je super, že vyházel několik tisíc draftů, který jsem měl uložený v příspěvcích :).
Už několik měsíců používám a pomohlo to hodně zkrotit databázi. Jsem jejím manuálním procházením zjistil, že si WordPress ukládá každou změnu článku, všechno. To se pak člověk nemusí divit, proč je ta databáze tak velká. A ještě pro jistotu používám zálohovací plugin BackWPup. Každou noc mi zazálohuje všechny soubory a databázi do jednoho zip archivu a nahraje mi to na Dropbox. Ideální na přenos webu někam jinam. :)
Vojto,
já pro automatické zálohy používám plugin WordPress Database Backup, kdy si nechávám posílat zálohu pomocí mailu. Ale u velkých databází není posílání mailem možné, proto určitě vyzkouším Tebou zmíněný plugin. Díky za něj :).