Prečo sa e-shop časom spomaľuje

E-shop bol na začiatku rýchly. Nič zásadné ste nemenili, a predsa je dnes pomalší. Príčina býva v databáze, teda v sklade, kde web uchováva produkty, objednávky, nastavenia a texty. Do skladu sa roky nosí a nič sa z neho nevynáša. Jednému e-shopu som takto zmenšil databázu z 20 GB na 2 GB.

Čo sa v databáze hromadí

Staré verzie textov. WordPress štandardne ukladá revízie: pri každom uložení produktu alebo stránky pribudne kópia. Podľa dokumentácie je to predvolene zapnuté a počet sa dá obmedziť nastavením. Pri e-shope, ktorý často mení produkty, sa ich nazbierajú celé tisíce.

Dočasné údaje. Pluginy si ukladajú údaje, ktoré majú po čase vypršať, takzvané transienty. Bez samostatnej vyrovnávacej pamäte končia v databáze a pri častom používaní môžu tabuľku nastavení nafúknuť.

Zvyšky po pluginoch. Vymazaním pluginu sa jeho tabuľky a nastavenia často neodstránia. Zostávajú tam po pluginoch, o ktorých už ani neviete.

Záznamy a logy. Rôzne pluginy, plánované úlohy a e-maily si zapisujú históriu, ktorú nikto nečíta.

Staré dáta košíkov a návštevníkov. Opustené košíky, relácie a štatistiky.

Prečo to spomaľuje každé kliknutie

Časť nastavení si WordPress načítava pri každom zobrazení stránky. Pluginy tam niekedy uložia aj veľké množstvo údajov. Web ich potom ťahá pri každej návšteve, aj keď ich nepotrebuje. Veľká tabuľka zároveň znamená pomalšie hľadanie, najmä ak chýbajú indexy, teda niečo ako obsah v knihe.

Objednávky a HPOS

Staršie e-shopy na WooCommerce majú objednávky uložené v rovnakých tabuľkách ako články a stránky. WooCommerce 8.2 preto priniesol ako predvolený spôsob pre nové e-shopy samostatné tabuľky objednávok, volané HPOS. Existujúce e-shopy si ho musia zapnúť samy. Má to zmysel najmä pri väčšom počte objednávok, ale pred prechodom je potrebné overiť, či ho podporujú vaše pluginy.

Ako upratovať bezpečne

  1. Záloha a overenie, že sa z nej dá web obnoviť. Bez toho do databázy nesiahajte.
  2. Zistite, čo zaberá miesto. Pozrite veľkosť jednotlivých tabuliek. Väčšinou to spôsobí pár vecí, nie všetko rovnako.
  3. Mažte len to, čomu rozumiete. Tabuľku po neznámom plugine si najprv overte.
  4. Obmedzte príčinu. Nastavte limit revízií, opravte plugin, ktorý zapisuje priveľa, a nastavte čistenie logov. Inak sa vám databáza znova naplní.
  5. Skontrolujte web. Objednávky, košík, platby a merania rýchlosti.

Pluginy na čistenie databázy pomôžu s bežnými vecami. Nečistia však všetko a pri neopatrnom použití môžu zmazať to, čo ešte potrebujete. Objednávky a produkty pritom nemažeme: tie sú dôvodom, prečo databáza existuje.

Pomôže to vždy?

Nie. Databáza je častá, ale nie jediná príčina. Zmenšenie pomôže, keď je problém naozaj v nej. Preto najprv merajte, potom čistite. Ďalšie príčiny nájdete v článku Prečo je môj web pomalý.

Zdroje: WordPress: Editing wp-config.php, WooCommerce: High-Performance Order Storage.