Cachování – výkonnost, uplatnění
- dEath
- Člen | 39
Ahoj, mám takovou otázku ohledně kešování – uplatnění, výkon.
Hypoteticky, mám například blog s 500 příspěvky. Každý článek může být dlouhý např. 5× A4. Když si ho nějaký uživatel vyžádá, načte se do cache. Předpokládám, že článek bude dobré nacachovat např. na týden, protože na něj bude vysoká přístupnost a po týdnu zájem upadne, ale cache se bude prodlužovat (po vyžádání) a nakonec se po týdnu smaže. Hypoteticky tak můžu mít v cache uloženo např. 30 článků.
Jak to ale bude s výkonností, pokud by se do cache uložilo všech 500 článků (protože si je uživatelé vyžádali). Nebylo by v takovém případě lepší články tahat z databáze? Má takové množství zásadní význam při braní z disku?
Předpokládám, že když bych se nějaký článek upravil, tak bych ho z cache vymazal a počkal na jeho opětovné vyžádání. Ale nebylo by lepší článek přepsat v cache + v databázi? Jak to tady bude s rychlostí?
Co jsem se díval, Nette má dobrý mechanismus pro cachování obsahu a ušetření dotazů na databázi, ale do jaké míry je to použitelné a rychlejší právě oproti načítání z databáze, pokud by se mi cache poměrně slušně zaplnila? Co jsem pročítal fórum, jsou ohledně toho různorodé názory.
Díky za rady )
- Filip Procházka
- Moderator | 4668
Cache má význam při složitém dotazu, nebo velkém množství dat (více než stovky záznamů, nebo záznamy s objemnými daty).
A tvůj dotaz vyloženě vyžaduje otázku http://www.codesimplicity.com/…engineering/
- kravčo
- Člen | 721
Presnejšie: kešovanie má význam ak vykreslenie stránky vyžaduje zložitú operáciu, ktorá je rádovo pomalšia alebo viac vyťažuje server ako načítanie keše.
Áno, príkladom môže byť dopyt na databázu:
- ktorý je výpočtovo náročný
- ktorého výsledkom je veľa dát
Ale taktiež akákoľvek iná náročná operácia:
- formátovanie textu
- náhľady obrázkov
- nájdenie n-tého prvočísla pre veľké n :)
Je jasné, že zapojenie keše automaticky nezamená zlepšenie, preto je vhodné nasadenie keše dobre premyslieť a následne i vhodne zmerať.