Avatar billede rentondk Nybegynder
09. september 2003 - 13:27 Der er 4 kommentarer

Cache PHP side med MySQL queries

Jeg har en hjemmeside, som belaster den tilknyttet MySQL serveren temmelig meget.

Hvordan kan man i PHP smartest cache f.eks. forsiden, så der bliver gemt en statisk version, som så kun laves om ved ændringer i de pågældende tabeller, som databasen benytter?

Er der andre måder, hvorpå man kan nedsætte belastningen?
Avatar billede hagbardph3 Nybegynder
09. september 2003 - 15:38 #1
Når det er databasen du belaster rimeligt meget, er det vel dine select forespørgsler du vil cache. Til dette kan du anvende f.eks. ADODB (http://php.weblogs.com/ADODB)

Eller du kan selv gå i gang med denne tutorial fra zend: http://www.zend.com/zend/tut/tutorial-staub2.php
Avatar billede fangel Nybegynder
10. september 2003 - 15:55 #2
jeg har selv gået med tanker om et cache system, og er komemt frem til denne motode:

i databasen gemmes sider med et 'sidst-ændret' tag (eller på anden måde finde ud af hvornår cachen er forældet)

hvis cachen er forældet (check forældet data vs filemtime() på cache filen)
kører du siden gemmen, dog bare med output buffering (ob_start()). når siden så er kørt gennem dumpes data til en .html fil og viser denne

hvis cachen ikke er forældet vises bare .html filen...

---

kode ex.

find ud af om cache er for gammel

$expiresAfter = 60*60*24; // 1 dag
$cacheFile = "staticFrontpage.html";
if(filemtime($cacheFile) < time() - $expiresAfter){
  // for gammel
}
else{
  include $cacheFile;
}

Morten
Avatar billede rentondk Nybegynder
16. september 2003 - 09:34 #3
Det var rigtig smart Morten.

Vil serveren altid lave cachen? Hvis en bruger lukker sin browser, mens at cachen bliver lavet, så går der vel ikke ged i det?
Avatar billede fangel Nybegynder
16. september 2003 - 14:26 #4
næææ - for serveren finder ikke ud af at clienten lukker - den sender bare den færdige side ud - om der er noget til at modtage er den ligeglad med

du får lige et svar ;)

Morten
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Scan Global Logistics

PMO Project Manager

Politiets Efterretningstjeneste

Netværksspecialist til IT i PET

Capgemini Danmark A/S

Java Engineer

Netcompany A/S

Network Engineer