Databáze je výkonný standard pro uchovávání, poskytování a úpravu vašich dat. Je to „mozek“ vašeho webu, kde je uloženo vše: obsah, komentáře uživatelů, nastavení webu, používané šablony a pluginy. Při každé změně, kterou na webu provedete (publikování nového článku, přidání galerie, nastavení nové šablony atd.) se databáze aktualizuje novými daty a rychle se zvětšuje. Zároveň rostoucí počet návštěvníků, kteří procházejí váš web a vyžadují obsah, vede k rostoucímu počtu základních a komplexních MySQL dotazů na databázi.
Základní MySQL dotaz dotazuje data z jedné tabulky v databázi, komplexní MySQL dotaz dotazuje data z více tabulek.
Výsledkem je, že databáze se časem stane příliš velkou a přeplněnou daty, což zabírá místo, zvyšuje zatížení serveru a snižuje výkon webu, což vede ke ztrátě návštěvnosti.
Proto jsme vytvořili tohoto průvodce, který vám poskytne snadno sledovatelné instrukce k optimalizaci databáze WordPress, které můžete začít implementovat okamžitě! Doufáme, že vám to přijde užitečné a přiblíží vás to k rychlému a svižnému webu.
Začněme základními kroky optimalizace databáze, konkrétně optimalizací datových tabulek.
Pozor!
Než budete pokračovat, ujistěte se, že jste vytvořili úplnou zálohu vaší aktuální databáze. Zálohu můžete vytvořit pomocí WP Database Backup, WP-DB-Backup, v ovládacím panelu serveru, nebo požádat podporu.
Když to máme vyjasněno, podívejme se na kroky potřebné k optimalizaci databáze WordPress a odstranění nepotřebných dat:
Hotovo!
Výsledkem je, že WP-Optimize vyčistí všechna zastaralá data (odstraněné, neschválené a spamové komentáře atd.), všechny revize příspěvků a bílé mezery v datových tabulkách.
Navíc tento plugin nezabírá téměř žádné místo a po dokončení optimalizace jej můžete deaktivovat.
Další plugin pro optimalizaci datových tabulek od autora populárních pluginů WordPress — Lester Charn.
Jeho rozhraní je velmi jednoduché a intuitivní. Okamžitě vidíte podrobný přehled o aktuálním objemu odpadu v datových tabulkách. Kromě toho WP-Sweep umožňuje provádět kompletní i postupnou optimalizaci.
Po instalaci pluginu se k němu dostanete přes Tools > Sweep v levém postranním panelu administrace WordPressu.
Tato možnost je možná pouze tehdy, pokud používáte ovládací panel (např. cPanel) a máte přístup k nástroji phpMyAdmin.
Před jakoukoliv úpravou databáze si vytvořte zálohu!
Když je záloha hotová, můžete začít optimalizovat:
define('DB_NAME', 'databaze');
— tam uvidíte název databáze.)Po kliknutí phpMyAdmin provede optimalizaci tabulek.
Co se vlastně stane? Nástroj phpMyAdmin spustí příkaz SQL OPTIMIZE TABLE, stejně jako zmíněné pluginy. Reorganizuje fyzické ukládání dat tabulky a příslušných indexů, aby snížil využití místa a zlepšil efektivitu přístupu k datům.
Defragmentace tabulek je nutná, pokud se databáze pravidelně aktualizuje, aby se odstranily mezery v tabulkách a zrychlil výběr dat.
Alternativou k používání pluginů je ruční čištění tabulek. Zde je několik příkladů základních SQL příkazů:
Hromadné smazání revizí příspěvků:
DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON ( a.ID = b.object_id )
LEFT JOIN wp_postmeta c ON ( a.ID = c.post_id )
LEFT JOIN wp_term_taxonomy d ON ( b.term_taxonomy_id = d.term_taxonomy_id )
WHERE a.post_type = 'revision'
AND d.taxonomy != 'link_category';
Hromadné smazání spamových komentářů:
DELETE FROM wp_comments WHERE comment_approved = 'spam';
Hromadné smazání neschválených komentářů:
DELETE FROM wp_comments WHERE comment_approved = '0';
Hromadné smazání nepoužívaných štítků:
DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE count = 0);
DELETE FROM wp_term_taxonomy WHERE term_id NOT IN (SELECT term_id FROM wp_terms);
DELETE FROM wp_term_relationships WHERE term_taxonomy_id NOT IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);
Hromadné smazání přechodних dat (transients):
DELETE FROM wp_options WHERE option_name LIKE ('%\_transient\_%');
Další optimalizace už spadá do ladění výkonu databáze MySQL a začíná vyhledáváním pomalých dotazů přímo v MySQL.
Pomalé dotazy MySQL jsou dotazy, které trvají příliš dlouho a jsou kandidáty pro optimalizaci.
Chcete-li zjistit pomalé dotazy, musíte na serveru aktivovat logování pomalých dotazů, které je ve výchozím nastavení vypnuto. To se provádí úpravou konfiguračního souboru my.cnf
, obvykle uloženého v /etc/mysql/my.cnf
nebo /etc/my.cnf
.
Otevřete tento soubor v libovolném textovém editoru a přidejte:
slow_query_log = /var/log/mysql/mysql-wp-slow.log
long_query_time = 5
Kde: /var/log/mysql/mysql-wp-slow.log
je cesta k souboru, kde se budou ukládat pomalé dotazy (soubor musíte vytvořit před úpravou my.cnf), 5 je výchozí hodnota v sekundách, kdy je dotaz považován za pomalý.
Po restartu MySQL budou všechny pomalé dotazy ukládány do souboru /var/log/mysql/mysql-wp-slow.log
k dalšímu ladění.
Výše popsané metody optimalizace výkonu webu jsou pouze základní doporučení. V každém konkrétním případě se optimalizace může lišit v závislosti na typech „úzkých míst“, která zabíjejí výkon a ovlivňují vaše podnikání.