Jak omezit velikost cacheovacích tabulek v databázi Drupalu

Porovnávali jste někdy velikosti databází Drupalu a WordPressu? Jedním z důvodů, proč ta drupalovská je několikanásobně větší, je i ukládání cache do databázových tabulek. Ujistěte se, že jejich velikost nepřesáhne limity hostingu a nevypnou vám web.

Drupal má výrazně jiný koncept než WordPress a v databázi má kde co. Že je sama od sebe větší, není až takový problém. V době několikagigabajtových či dokonce neomezených prostorů na hostingu by to mohlo být jedno, že?

Ale není. Řada hostingů sice nabídne velkorysou kapacitu úložiště, avšak to se netýká velikostí databáze. Takové Active24 má striktní omezení na 1 GB i v tom nejlepším tarifu a pokud chcete více, tak máte možnost přejít na VPS. Alespoň dle slov technické podpory. Ještě více omezenou velikost databáze má Blueboard.cz, kam Drupal 8 rozhodně nedávejte.

Limit by se zdál dostatečný. E-shop na Drupalu 8 se stovkami produktů má v základu velikost databáze kolem 150 MB. Jenže pak přijde do hry cacheování. Drupal si ukládá veškerou cache do databáze, což je už sám o sobě diskutabilní postup. A všechny databázové tabulky cache_* něco začnou raketově růst.

Než přišel Drupal 8.4, tak zde nebylo absolutně žádné omezení a z malé databáze se za pár dnů mohl stát moloch o velikosti několika gigabajtů. Počínaje Drupalem 8.4 je každá databázová tabulka sloužící pro potřeby cache omezena na 5 000 řádků.

Jenže tohle kolikrát nemusí stačit. Rozhodně ne pro web nebo e-shop s vyššími stovkami podstránek.

velikost

Jak omezit počet řádků v cache tabulkách Drupalu?

Výše zmíněný limit není možné měnit někde z administrace, ale upravit lze. Dopsáním odpovídajícího řádku do souboru settings.php.

V praxi jsem bohužel u zmíněného eshopu narazil, že ani omezení na 200 záznamů už není dostatečné a než dojde k odmazání při běhu cronu, databáze přešvihne limit a hosting vypne zápisy do ní. Tím v podstatě celý Drupal shodí. Stačí, aby během hodiny zavítal na web nějaký robot, který proskenuje všechny stránky.

Problém jsou rovněž weby, kde je v těle stránky obrázek vložený nikoli jako adresa na soubor, ale jako base64 encoded. Pak samozřejmě i samotné HTML stránky výrazně narůstá, natož cache.

V takovém případě nezbývá než doporučit jiný hosting. Mým favoritem je momentálně WebSupport, jehož přidělený prostor si pro web, databázi a e-maily rozdělíte zcela libovolně.

Tip: Podobné tipy pro Drupal najdete v připravované knize 333 tipů a triků pro Drupal 9.

Buďme ve spojení, přihlaste se k newsletteru

Odesláním formuláře souhlasíte s podmínkami zpracováním osobních údajů. 
Více informací v Ochrana osobních údajů.

Autor článku: Jan Polzer

Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.

Komentáře k článku

Přidat komentář

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru