caching
Hallo,
Ik wil in mijn framework / cms een caching functie inbouwen, maar ik wil graag een paar dingen weten. Ik ken zelf 2 manieren van caching, namelijk het cachen van databasegegevens en het cachen van complete pagina's (html). Nu vraag ik me af (vanuit performance oogpunt) of ik beide manieren in mijn cms moet gaan implementeren.
Stel je hebt een homepage waarin je 4 includes uitvoert (bijv. header, menu, content, footer) en waar je op 3 verschillende locaties databasegegevens nodig hebt. Nu lijkt het mij heel erg zinvol om die databasegegevens te cachen (denk bijv. aan de menuitems, de content (tekst) en een paar linkjes in de footer). Door deze in 1 bestandje te cachen hoeven er niet 3x databasegegevens te worden opgehaald. Dat lijkt me een goede performance winst! Maar nu vraag ik me dus af... zou het zin hebben om die COMPLETE pagina te cachen? Zodat er dus uiteindelijk slechts 1 (html) bestand wordt geinclude (in plaats van 4 includes)? Dit lijkt misschien handig, maar volgens mij betekent het dan wel dat ik van ieder bestand dat normaal gesproken geinclude zou moeten worden, telkens zou moeten controleren (aan de hand van de "laatst gewijzigd" tijd) of het bestand nog actueel is, of opnieuw gecached moet worden. Mijn vraag is dan ook of het cachen van complete pagina's een meerwaarde heeft. Van het cachen van databasegegevens zie ik zeker de meerwaarde in, maar over het cachen van complete pagina's twijfel ik. Kan iemand daar iets meer over vertellen?
Oh ja, stel dat je een webshop hebt met vele duizenden artikelen waarvan de prijs dagelijks verandert. Ga je dan ook de databasegegevens cachen? Dat lijkt me heel lastig. Stel je hebt een productoverzichtspagina waarop 30 artikelen worden getoond met 20 pagina's. Ga je dan automatisch de databasegegevens cachen zodra iemand zo'n pagina bezoekt? Is dat zinvol? De dag erna veranderen alle gegevens namelijk weer. En stel dat de gebruiker het aantal artikelen op 10 per pagina kan zetten (in plaats van 30) dan krijg je dus 60 pagina's. Moet je die dan allemaal gaan cachen?
Ik ben benieuwd of iemand mij wat algmene info kan geven, wanneer je caching toepast, en of caching van complete pagina's daadwerkelijk voordeel oplevert. Graag jullie reacties!
Ik wil in mijn framework / cms een caching functie inbouwen, maar ik wil graag een paar dingen weten. Ik ken zelf 2 manieren van caching, namelijk het cachen van databasegegevens en het cachen van complete pagina's (html). Nu vraag ik me af (vanuit performance oogpunt) of ik beide manieren in mijn cms moet gaan implementeren.
Stel je hebt een homepage waarin je 4 includes uitvoert (bijv. header, menu, content, footer) en waar je op 3 verschillende locaties databasegegevens nodig hebt. Nu lijkt het mij heel erg zinvol om die databasegegevens te cachen (denk bijv. aan de menuitems, de content (tekst) en een paar linkjes in de footer). Door deze in 1 bestandje te cachen hoeven er niet 3x databasegegevens te worden opgehaald. Dat lijkt me een goede performance winst! Maar nu vraag ik me dus af... zou het zin hebben om die COMPLETE pagina te cachen? Zodat er dus uiteindelijk slechts 1 (html) bestand wordt geinclude (in plaats van 4 includes)? Dit lijkt misschien handig, maar volgens mij betekent het dan wel dat ik van ieder bestand dat normaal gesproken geinclude zou moeten worden, telkens zou moeten controleren (aan de hand van de "laatst gewijzigd" tijd) of het bestand nog actueel is, of opnieuw gecached moet worden. Mijn vraag is dan ook of het cachen van complete pagina's een meerwaarde heeft. Van het cachen van databasegegevens zie ik zeker de meerwaarde in, maar over het cachen van complete pagina's twijfel ik. Kan iemand daar iets meer over vertellen?
Oh ja, stel dat je een webshop hebt met vele duizenden artikelen waarvan de prijs dagelijks verandert. Ga je dan ook de databasegegevens cachen? Dat lijkt me heel lastig. Stel je hebt een productoverzichtspagina waarop 30 artikelen worden getoond met 20 pagina's. Ga je dan automatisch de databasegegevens cachen zodra iemand zo'n pagina bezoekt? Is dat zinvol? De dag erna veranderen alle gegevens namelijk weer. En stel dat de gebruiker het aantal artikelen op 10 per pagina kan zetten (in plaats van 30) dan krijg je dus 60 pagina's. Moet je die dan allemaal gaan cachen?
Ik ben benieuwd of iemand mij wat algmene info kan geven, wanneer je caching toepast, en of caching van complete pagina's daadwerkelijk voordeel oplevert. Graag jullie reacties!
Gesponsorde koppelingen:
Ik heb geen ervaring met webshop maar ik zou zeggen helemaal niets cachen. Er moet altijd disk i/o gedaan worden om gegevens op te halen, of je nu een html bestand ophaalt of wat uit de database ophaalt, wat is het verschil. Bouw een benchmark systeem en ga je i/o's meten. Hoeveel disk i/o's voor het een en hoeveel disk i/o's voor het andere? Ik werk met webapplicaties en (Oracle) databaseses en er wordt helemaal niets gecached, nooit. Aantal gebruikers +500 continue, betreft onder andere drie landelijke callcentra.
Edit:
Ik moet wel eerlijkheidshalve toevoegen dat Oracle in staat is om data te cachen in memory.
Gewijzigd op 05/02/2012 14:56:08 door Aad B
Hmmm, oké. Dankjewel voor je toelichting. Ik ben overigens niet op zoek naar benchmarks, maar naar ervaringen van mensen. Wat doen de andere leden op dit forum. Cachen jullie wel of niet databasegegevens / complete html pagina's? Ik hoor het graag...
Nog nooit gebruikt.
Ozzie, duidelijk en ik ben dan ook heel nieuwsgierig wat dan de motieven zijn. Is het werkelijk sneller om te cachen met files? Files moeten (her)geschreven worden en dat is namelijk de meest belastende i/o voor elk systeem. Controleren en herschrijven of steeds on the fly genereren zonder te schrijven naar disk? Wat is efficienter?
@SanThe: dus stel jij hebt een homepage en je hebt op 3 plekken gegevens uit de database nodig, dan voer jij dus 3x een query uit?
@Aad: het cachen van databasegegevens is niet verkeerd. Stel je hebt op 3 plekken op je pagina databasegegevens nodig dan haal je die gegevens uit de database en schrijft ze weg in een bestandje. Volgende keer kijk je of dat bestandje bestaat. Ja, dan het bestandje inlezen en zo bespaar je 3 database queries.
Het cachen van een complete pagina zou dan op eenzelfde manier werken. Is er een gecachte versie, dan die inladen. Zo niet, pagina laden en een cahce bestand van maken. Echter, je zult dan wel telkens moeten controleren of de pagina wel actueel is. Want anders zou het kunnen zijn dat jij in een van de pagina's iets verandert, maar dat dat niet zichtbaar wordt omdat de gecachete versie getoond wordt. Je zal dus voor iedere pagina een controle moeten doen of dat ie gewijzigd is, en de vraag is of deze controles dan nog wel opwegen tegen de beoogde performance winst.
@Aad: het cachen van databasegegevens is niet verkeerd. Stel je hebt op 3 plekken op je pagina databasegegevens nodig dan haal je die gegevens uit de database en schrijft ze weg in een bestandje. Volgende keer kijk je of dat bestandje bestaat. Ja, dan het bestandje inlezen en zo bespaar je 3 database queries.
Het cachen van een complete pagina zou dan op eenzelfde manier werken. Is er een gecachte versie, dan die inladen. Zo niet, pagina laden en een cahce bestand van maken. Echter, je zult dan wel telkens moeten controleren of de pagina wel actueel is. Want anders zou het kunnen zijn dat jij in een van de pagina's iets verandert, maar dat dat niet zichtbaar wordt omdat de gecachete versie getoond wordt. Je zal dus voor iedere pagina een controle moeten doen of dat ie gewijzigd is, en de vraag is of deze controles dan nog wel opwegen tegen de beoogde performance winst.
Ozzie PHP op 05/02/2012 15:12:32:
@SanThe: dus stel jij hebt een homepage en je hebt op 3 plekken gegevens uit de database nodig, dan voer jij dus 3x een query uit?
Ja.
@Ozzie, vergeef me dat ik kritisch ben maar alleen als je deze bewering kan onderbouwen: "het cachen van databasegegevens is niet verkeerd" dan overtuig je me pas. I/o per functie ??
Gewijzigd op 05/02/2012 15:18:08 door Aad B
@Aad: ik heb altijd geleerd dat je op een pagina zo min mogelijk database queries moet uitvoeren omdat dit slecht is voor de performance. Daarom denk ik dat het een goed idee is om je databasegegevens te cachen. Ik kan dat (nu) niet onderbouwen. Maar sowieso, gewoon logisch gedacht, lijkt het me een goede zaak. Waarom per iedere pagina aanroep 10x een query uitvoeren, in plaats van al deze gegevens eenmalig in een bestandje opslaan en per pagina slechts 1 bestandje inlezen in paats van 10 queries uitvoeren. Daar lijkt mij niks mis mee.
Maar met het cachen van complete pagina's... tja, daar heb ik dus wel wat twijfels bij...
@SanThe: oké :)
p.s. Heb ooit in een ver verleden eens met Zend Framework gewerkt en daar kon je eenvoudig gegevens uit de database cachen. Vandaar dat ik dat nu ook in m'n eigen framework wil inbouwen.
Maar met het cachen van complete pagina's... tja, daar heb ik dus wel wat twijfels bij...
@SanThe: oké :)
p.s. Heb ooit in een ver verleden eens met Zend Framework gewerkt en daar kon je eenvoudig gegevens uit de database cachen. Vandaar dat ik dat nu ook in m'n eigen framework wil inbouwen.
Gewijzigd op 05/02/2012 15:23:39 door Ozzie PHP
Caching is op zich wel leuk, maar vaak overbodig. Het betekent dat je een template engine nodig hebt, een lexter en een parser moet gebruiken en dat kost ook veel cpu. Het resultaat is vaak een .html bestand en ja, zodra een pagina gecached is scheelt het enkele roundtrips van server <-> database <->server <-> client. Het enige wat je dan hoeft te doen is checken of de pagina up to date is en een .html bestand terug geven.
het nadeel is echter dat je vaak dynamische pagina`s wil houden. M.a.w. ingelogde gebruikers moeten wel hun "eigen" naam te zien krijgen, z`n meest recente topics etc. Dus je zult hoe dan ook roundtrips moeten maken.
Caching is leuk voor statische websites, waar het meer om informatie voorziening gaat. Of je moet specifiek templates cachen voor bijvoorbeeld menu`s, sidebars, footers etc. De rest hou je dan dynamisch. Dat scheelt ook weer. Maar je zult vaak hoe dan ook je database moeten aanroepen.
het nadeel is echter dat je vaak dynamische pagina`s wil houden. M.a.w. ingelogde gebruikers moeten wel hun "eigen" naam te zien krijgen, z`n meest recente topics etc. Dus je zult hoe dan ook roundtrips moeten maken.
Caching is leuk voor statische websites, waar het meer om informatie voorziening gaat. Of je moet specifiek templates cachen voor bijvoorbeeld menu`s, sidebars, footers etc. De rest hou je dan dynamisch. Dat scheelt ook weer. Maar je zult vaak hoe dan ook je database moeten aanroepen.
Dankjewel Merijn.
Ik had bedacht om dan alleen databasegegevens te cachen, en geen complete pagina's omdat ik denk dat dat bij veel includes (header, footer, menu, content) niet zo veel zin heeft omdat je dan telkens die bestanden op datum/tijdstip moet gaan controleren. Ik denk dat die tijdwinst uiteindelijk weinig opweegt tegen het inladen van 1 bestand. Mee eens?
Ik wil dan wel de databasegegevens gaan cachen, maar dan alleen die gegevens die niet vaak veranderen. Denk bijvoorbeeld aan menu-structuur en een paar nieuwsberichten op de homepage. Als ik dan bijv. via het CMS een nieuw nieuwsbericht toevoeg, dan zorg ik dat op dat moment automatisch het bestaande cachebestand wordt verwijderd. Als iemand dan de pagina aanroept dan wordt er meteen een nieuw cachebestand gemaakt. Wel goed idee toch?
Ik had bedacht om dan alleen databasegegevens te cachen, en geen complete pagina's omdat ik denk dat dat bij veel includes (header, footer, menu, content) niet zo veel zin heeft omdat je dan telkens die bestanden op datum/tijdstip moet gaan controleren. Ik denk dat die tijdwinst uiteindelijk weinig opweegt tegen het inladen van 1 bestand. Mee eens?
Ik wil dan wel de databasegegevens gaan cachen, maar dan alleen die gegevens die niet vaak veranderen. Denk bijvoorbeeld aan menu-structuur en een paar nieuwsberichten op de homepage. Als ik dan bijv. via het CMS een nieuw nieuwsbericht toevoeg, dan zorg ik dat op dat moment automatisch het bestaande cachebestand wordt verwijderd. Als iemand dan de pagina aanroept dan wordt er meteen een nieuw cachebestand gemaakt. Wel goed idee toch?
Ja dat is een strakke manier om te cachen. Dat is sowieso raadzaam als je wilt gaan cachen. Als je op runtime gaat cachen zodra er iets verandert scheelt dat enorm in checks. Op die manier kun je ook .html bestanden gaan cachen. Als je een menu structuur aan gaat passen kun je direct een nieuwe cache bestand aanmaken voor je menu.html, dat scheelt uiteindelijk, dan hoef je runtime niet continu je query naar je menu te doen, alleen een include van menu.html. Dan hoef je ook niet op timestamp te controleren of er een nieuwe versie is.
Het enige grote nadeel is dat je geen echte cache controllers hanteert. Je cached alles runtime dus je hebt weinig controle over je cache voorraad en dat kan een probleem opleveren als je een rollback wilt doen of iets dergelijks. Maar goed, dat heb je weinig nodig gelukkig :)
Database queries die vaak gebruikt worden kun je inderdaad wel gewoon cachen, als er weinig verandert, dan kun je daar met een simpele check controleren of er een nieuwe versie is.
Al met al hoeft caching niet, het _kan_ theoretisch een verschil opleveren. Praktijk echter is dat de verschillen vaak marginaal zijn, het wordt pas interessant met enorme hoeveelheden requests omdat je dan de server(s) kunt ontzien qua load. Als je alleen maar een paar .html bestanden hoeft te includen kan dat vanaf je root / cache folders, dat scheelt, hoeft PHP het bijvoorbeeld niet runtime en on-the-fly allemaal te controleren.
Maar dan hebben we het al gauw over enkele duizenden requests per uur.
Het enige grote nadeel is dat je geen echte cache controllers hanteert. Je cached alles runtime dus je hebt weinig controle over je cache voorraad en dat kan een probleem opleveren als je een rollback wilt doen of iets dergelijks. Maar goed, dat heb je weinig nodig gelukkig :)
Database queries die vaak gebruikt worden kun je inderdaad wel gewoon cachen, als er weinig verandert, dan kun je daar met een simpele check controleren of er een nieuwe versie is.
Al met al hoeft caching niet, het _kan_ theoretisch een verschil opleveren. Praktijk echter is dat de verschillen vaak marginaal zijn, het wordt pas interessant met enorme hoeveelheden requests omdat je dan de server(s) kunt ontzien qua load. Als je alleen maar een paar .html bestanden hoeft te includen kan dat vanaf je root / cache folders, dat scheelt, hoeft PHP het bijvoorbeeld niet runtime en on-the-fly allemaal te controleren.
Maar dan hebben we het al gauw over enkele duizenden requests per uur.
Oké, thanks Merijn.
Als er nog anderen zijn die iet willen toevoegen, be my guest...
Als er nog anderen zijn die iet willen toevoegen, be my guest...
Ik kom toch weer even met mijn kritische opmerking: Niemand heeft enig bewijs, het zijn vooral onderbuik gevoelens en gedachten van queries duren te lang. "van horen zeggen en geleerd" is geen sluitend bewijs en leeft een eigen leven. MySQL en query processing/roundtrips wordt te zwaar gewogen zonder enig bewijs. Voorlopig zeg ik, niks cachen want mede gezien de controles genereer je ook veel i/o dus het paard achter de wagen spannen. Iemand een mening onderbouwd met aantallen i/o's en cpu/sec??
@Marijn: wat zijn echte cache controllers??
@Marijn: wat zijn echte cache controllers??
Gewijzigd op 05/02/2012 20:13:52 door Aad B
Aad, als ik alleen de database gegevens zou cachen, dan is er niks aan de hand, want dan laadt ie altijd het gecachete bestand in (zonder controles). Zodra ik dan bijv. een nieuwsbericht toevoeg verwijdert ie het cachebestand en wordt er zodra de pagina wordt aangeroepen een nieuw cachebestand gegenereerd. Dit is altijd sneller dan het aanroepen van een aantal queries.
Maar goed... ik ben ook wel benieuwd of iemand het kan onderbouwen. Ik meen ooit gelezen te hebben dat alle pagina's op nu.nl statisch (gecached) zijn. Die zullen dat ook niet voor niets doen lijkt me.
Maar goed... ik ben ook wel benieuwd of iemand het kan onderbouwen. Ik meen ooit gelezen te hebben dat alle pagina's op nu.nl statisch (gecached) zijn. Die zullen dat ook niet voor niets doen lijkt me.
Quote:
Niemand heeft enig bewijs, het zijn vooral onderbuik gevoelens en gedachten van queries duren te lang.
Ik denk dat je dan toch vooral eens Google moet raadplegen om te kijken of het enkel "onderbuik" gevoelens zijn. Je hebt het veel over IO maar databases zijn net zo hard IO operaties + daar komt bij dat je ook nog index sleutels mee moet nemen. Een SQL algoritme dat ongelofelijk snel is, is nog altijd langzamer dan een simpel bestandje ophalen vanaf een vaste locatie. Dat is geen onderbuik gevoel. Dat is puur en simpel logica in z`n meest voor de hand liggende vorm. IO operaties zijn traag, het is het traagst van alle operaties die je kunt hebben in een computer. Als je cache controllers gebruikt skip je de hele IO en haal je dingen op uit je registers of uit het geheugen. Dat scheelt ontzettend veel. Zelfs de snelste SSD schijf zal moeite hebben om in de buurt te komen van een memory call. Waarom? Omdat memory daar nou eenmaal voor gebouwd is! Registers op je CPU of de cache op je CPU zijn daar juist voor gemaakt. Als je daar raadzaam mee om weet te gaan kun je een request tot 90% sneller verwerken zonder dat je meer resources nodig hebt.
Echte cache controllers zijn de "engines" die je als PEAR packages kunt gebruiken in je applicatie. APC of Zend Cache. Daar zijn mooie interfaces voor gebouwd die je kunt raadplegen voor cache. Cache controls zitten vaak in template engines mits je caching toe laat. Maar hier geldt dat ze vooral ook static files inladen, als je je echte hardware cache gebruikt, weet je hier zoveel meer uit te halen dan statische files includen. Al scheelt het alsnog meer dan wanner je voor elke request opnieuw dezelfde queries continu moet uitvoeren.
@Merijn: wat is "echte hardware cache"? Ik ben nog steeds van mening dat ik niets onderbouwd heb gelezen en Google raadplegen?? PEAR is a framework and distribution system for reusable PHP components, moet ook van disk komen. Registers van je CPU gebruiken?? Lijkt me niet, daar geeft de cpu helemaal geen tijd voor, die staat echt niks te cachen voor iets op een heel andere (php/html) level. Mijn statement gaat om het totaal: cachen met files is top overhead, je moet checken of ze up-to-date zijn, eventueel nieuwe data ophalen en files weer wegschrijven. Het is veel beter om alles on the fly te doen en uit de database te halen. Je applicatie kan beter cpu-bounded zijn (on-the-fly opbouwen) dan i/o bounded. Echte hardware cache wordt al veel toegepast als verlengde van disk controllers maar realiseer je dat er write acties niet gecached kunnen worden om terug te lezen, die moeten alles vrijwel meteen wegschrijven om onzin te voorkomen met lezen. Geavanceerde database systemen uitgezonderd omdat die eenvoudig gezegd eerst in memory kijken of er correcte data is maar in bijvoorbeeld php zend of niet heb je geen mogelijkheden (voor zover ik weet) om iets in memory te cachen en cachen op disk/files blijf ik zeer twijfelachtig vinden. Ik ben best te overtuigen met het tegendeel maar dan wel met statistieken files cachen i/o's en cpu/sec en gewoon database steeds benaderen i/o's en cpu/sec.
Heren, de discussie gaat een beetje de verkeerde kant op.
Mijn vraag is / was wat je "moet" cachen. Zijn er nog andere mensen die hier een mening over hebben? Zelf zie ik dus het nut van het cachen van databasegegevens in, omdat je dan minder queries hoeft uit te voeren. Echter, het cachen van complete pagina's daar zet ik m'n vraagtekens bij, omdat je dan telkens zou moeten controleren of iedere (ingesloten) pagina die geinclude moet worden wel of niet up to date is. Dat controleren kost ook tijd, en dus kun je, denk ik, net zo goed die pagina's niet cachen. Maar ik zie dus wel het voordeel in van het cachen van databasegegens.
Iemand hier nog iets aan toe te voegen?
Mijn vraag is / was wat je "moet" cachen. Zijn er nog andere mensen die hier een mening over hebben? Zelf zie ik dus het nut van het cachen van databasegegevens in, omdat je dan minder queries hoeft uit te voeren. Echter, het cachen van complete pagina's daar zet ik m'n vraagtekens bij, omdat je dan telkens zou moeten controleren of iedere (ingesloten) pagina die geinclude moet worden wel of niet up to date is. Dat controleren kost ook tijd, en dus kun je, denk ik, net zo goed die pagina's niet cachen. Maar ik zie dus wel het voordeel in van het cachen van databasegegens.
Iemand hier nog iets aan toe te voegen?
Hallo Ozzie
Ik weet er totaal niets van, ik haal ook iedere keer alles op. Want als je al die files iedere keer moet controleren, heeft het niet echt zin.
Maar ik heb er eentje gemaakt voor 1 pagina, ik haalde dus 1.000 wachtwoorden, gehast op en hier zijn de resultaten. Er is niet echt veel verschil, maar je zult het wel zien.
Caching tijd (dus het ophalen uit een bestand in seconden):
0.0020
0.0014
0.0022
0.0017
0.0015
0.0025
0.0018
0.0015
0.0014
0.0013
PHP tijd zonder caching (seconden):
0.0246
0.0331
0.0138
0.0319
0.0142
0.0124
0.0373
0.0123
0.0355
0.0445
Caching memory:
0.42 megabytes
PHP memory:
0.48 megabytes
Zoals je ziet heb ik het wel maar 10 keer getest, omdat het toch redelijk duidelijk is. Ook zie je bij de memory maar 1 getal staan omdat ik toch de hele tijd hetzelfde uitkwam.
Misschien kun je hier wat mee, verder kun je natuurlijk NIET zoals mij (wat ik nu wel heb gedaan) een volledige pagina includen. Want bij een forum, wanneer komt een nieuw item er dan op, hoe ga je het bestand noemen enzovoort...
Dus geeft mij voor forums toch maar iedere keer het ophalen, voor nieuwssites zou het eventueel wel kunnen wanneer je nieuwe artikelen toevoegt, dat dan de pagina wordt gecached...
Veel succes
Ik weet er totaal niets van, ik haal ook iedere keer alles op. Want als je al die files iedere keer moet controleren, heeft het niet echt zin.
Maar ik heb er eentje gemaakt voor 1 pagina, ik haalde dus 1.000 wachtwoorden, gehast op en hier zijn de resultaten. Er is niet echt veel verschil, maar je zult het wel zien.
Caching tijd (dus het ophalen uit een bestand in seconden):
0.0020
0.0014
0.0022
0.0017
0.0015
0.0025
0.0018
0.0015
0.0014
0.0013
PHP tijd zonder caching (seconden):
0.0246
0.0331
0.0138
0.0319
0.0142
0.0124
0.0373
0.0123
0.0355
0.0445
Caching memory:
0.42 megabytes
PHP memory:
0.48 megabytes
Zoals je ziet heb ik het wel maar 10 keer getest, omdat het toch redelijk duidelijk is. Ook zie je bij de memory maar 1 getal staan omdat ik toch de hele tijd hetzelfde uitkwam.
Misschien kun je hier wat mee, verder kun je natuurlijk NIET zoals mij (wat ik nu wel heb gedaan) een volledige pagina includen. Want bij een forum, wanneer komt een nieuw item er dan op, hoe ga je het bestand noemen enzovoort...
Dus geeft mij voor forums toch maar iedere keer het ophalen, voor nieuwssites zou het eventueel wel kunnen wanneer je nieuwe artikelen toevoegt, dat dan de pagina wordt gecached...
Veel succes
Gewijzigd op 05/02/2012 23:36:59 door Aaron -
Hoi Aaron,
Dankjewel voor het testen! Het scheelt in ieder geval dus wel iets. Ik denk dat ik in ieder geval het compleet cachen van pagina's maar moet vergeten en dat ik alleen de database acties dan ga cachen... mits deze voor langere tijd onveranderlijk zijn, want net zoals jij zegt... op een forum waar de (re)acties elkaar zeer snel opvolgen heeft het weinig zin. Maar stel je hebt een bedrijfswebsite, dan kun je bijv. de laatste 5 nieuwsberichten op de homepage tonen en die zou je dan uit de cache kunnen halen ipv uit de database aangezien die berichten toch niet heel vaak zullen veranderen.
Dankjewel voor het testen! Het scheelt in ieder geval dus wel iets. Ik denk dat ik in ieder geval het compleet cachen van pagina's maar moet vergeten en dat ik alleen de database acties dan ga cachen... mits deze voor langere tijd onveranderlijk zijn, want net zoals jij zegt... op een forum waar de (re)acties elkaar zeer snel opvolgen heeft het weinig zin. Maar stel je hebt een bedrijfswebsite, dan kun je bijv. de laatste 5 nieuwsberichten op de homepage tonen en die zou je dan uit de cache kunnen halen ipv uit de database aangezien die berichten toch niet heel vaak zullen veranderen.
Voor websites waar het maar een aantal keer per dag verandert kun je dat natuurlijk wel doen. Maar zoals ik al zei gaat dat niet voor alle websites. Het feit dat het iets scheelt gaat wel doorwegen wanneer er veel mensen naar je website komen, maar zelfs dan nog...
Maar ik wens je nog veel succes met het maken van het script!
Maar ik wens je nog veel succes met het maken van het script!
Gewijzigd op 05/02/2012 23:47:14 door Aaron -



