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.
reklama

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.

Autor článku: Jan Polzer

Tvůrce webů z Brna se specializací na Drupal a Symfony. Obojí také školím spolu se základy SEO. Jsem Acquia Certified Developer a Site Builder a napsal jsem několik knih o Drupalu. Ve volných chvílích cestuji a podnikám výlety. Více se dozvíte na mém firemním webu.

reklama

Komentáře k článku

Přidat komentář

Filtered HTML

  • Povolené HTML značky: <a href hreflang> <em> <strong> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <p> <br>
  • Řádky a odstavce se zalomí automaticky.
  • Web page addresses and email addresses turn into links automatically.

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

reklama
Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Poslední komentáře
reklama
Nové diskuze
reklama
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.

Knihy o Drupalu

Kniha Drupal 8 Kniha Drupal 7 333 tipů a triků pro Drupal
Více na KnihyPolzer.cz

Co píší na Interval.cz
@maxiorel na Twitteru

Maxiorel na Twitteru