Fragmentová cache je (většinou) jediná správná možnost pro větší weby

MyEgo.cz

home foto blogy mywindows.cz kontakt

Fragmentová cache je (většinou) jediná správná možnost pro větší weby

Před pěti lety jsem psal krátký článek Jak zrychlit Váš web 10x? (konkrétní návod). Je to triviální, ale plně funkční a zejména obecně použitelný algoritmus pro cachování celých stránek. Dá se použít bez ohledu na nasazený redakční systém či logickou strukturu stránek, ale není to nejrychlejší možný postup.

Problém je, že tento systém nebude fungovat efektivně, když těch stránek jsou desítky tisíc, a každá navíc ve více variantách (třeba stejný obsah článku zobrazený jednou v celé sekci, podruhé ve skupině a potřetí v kategorii). Zde se mnohem lépe hodí fragmentová cache.

Na ten termín upozornil Zdroják.cz - podobné řešení používáme na našich webech řadu let.

Desítky tisíc stránek nemá nikdy smysl cachovat vcelku a po (třeba) 10 minutách cache komplet mazat, naopak je lepší cache napsat tak, že funguje vždy pro logické bloky na stránce (třeba „Nejčtenější články", „Akční zboží", „Související zboží" či „Poslední komentáře"). Takovéto statistiky mohou znamenat 10-20 SQL dotazů, nasazení cache pro daný logický celek poté pouze jeden jediný SQL dotaz.

Článků může být třeba sto tisíc, ale onen logický blok je vždy jen jeden. Udržovat fragmentovou cache je tedy výpočetně výrazně méně náročné než cachovat každou stránku celou. Onen blok se pro sto tisíc stránek generuje jen 1x, ne stotisíckrát.

Fragmentovaná cache je nicméně vždy implementačně závislá nejen na daném CMS, ale i na návrhu šablon stránky. Je potřeba prostě dané stránce rozumět a cachovat správné fragmenty po správný čas, není to univerzální řešení. Je nutné znát jak jsou bloky generovány, zda se jejich obsah liší dle sekcí, dle kategorií, či dle přihlášeného člena. Nemá tedy ani smysl zveřejňovat kód pro fragmentovou cache.

Fragmentovanou cache používáme úspěšně na všech velkých portálech - MTBS.cz, KOLO.cz a další, ale i eshopech s velkou návštěvností.


Komentáře

  1. 1 Grygar Zbyněk 15.06.10, 01:06:31
    FB

    bude se někdy pokračovat v blog-cms ?
    uvítal bych tuto možnost v něm
    Děkuji Zbyněk

  2. 2 Radek Hulán 15.06.10, 09:06:26
    FB

    [1] někdy v průběhu roku ano

  3. 3 Radek Šima 15.06.10, 09:06:05
    FB

    [2] uz aby se na tom pracovalo :) i kdyz pochybuji ze na blog-cms(nemyslim jeho nonfree verzi) pojede nejaky projekt s desítkama tisíc návštěv denně... Ale třeba pro různé druhy hostingů, které se platí podle vytížení(nevim jestli to semka můžu napsat, ale jedná se např o timehosting.cz), tak díky tomuto jdou ušetřit náklady :)