Kom ihåg mig?
Home Menu

Menu


Synpunkter på min navigerings lösning!

 
Ämnesverktyg Visningsalternativ
Oläst 2009-10-12, 09:41 #1
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
Question Synpunkter på min navigerings lösning!

Hej gott folk!
Vill bar aha lite åsikter på en php navigerings class jag gjort precis.
Den är ganska enkel, men tjänar man mycket på det?

När en användare besöker sajten så körs classen;
1. Ansluter till mysql och hämtar hem menyn
2. Sparar menyn som json i en sessions variabel
3. Visar menyn för besökaren

När besökaren sedan surfar vidare på sidan så kollar classen om menyn är "cachad" och laddar i så fall in menyn via sessions variablen som json som sedan görs om till meny och visas.

Är det onödigt eller är det bra avlastning från mysql?
Plus minus?
grinditwp är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-10-12, 09:49 #2
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Är MySQL flaskhalsen på din sida så bör du nog se över dina frågor till MySQL.

Att lagra något sånt här i sessionen anser jag onödigt. Sessioner lagras som standard på disk, och disken är oftast en större flaskhals än MySQL, eftersom MySQL lagrar oftast i minnet.
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-10-12, 09:52 #3
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
Det är väl en bra lösning, bättre än att hämta den varje gång från databasen.

En ännu bättrelösning är att spara variabeln med något cache-system så kan alla besökare läsa direkt från minnet ist för att slå upp i databas en gång. Dock räcker din lösning en bra bit om du inte sitter på en extremt trafikerad sida
nosnaj är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-10-12, 09:56 #4
najks avatar
najk najk är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2005
Inlägg: 1 224
najk najk är inte uppkopplad
Har WN som tidsfördriv
najks avatar
 
Reg.datum: Oct 2005
Inlägg: 1 224
Hur ofta ändras menyn? Är menyn individuellt anpassad?
Min tanke är att det räcker med en menycache för alla användare, istället för att varje session ska ha sin meny.
najk är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-10-12, 11:54 #5
Bjorne Bjorne är inte uppkopplad
Flitig postare
 
Reg.datum: Sep 2009
Inlägg: 374
Bjorne Bjorne är inte uppkopplad
Flitig postare
 
Reg.datum: Sep 2009
Inlägg: 374
Så länge du inte har bevisat för dig själv att optimeringen har en mätbar effekt och att den verkligen behövs är det bara onödigt. Om du kommer fram till att du behöver cachning, kolla på memcached som är en mer holistisk och robust lösning än att handknacka en egen specialcache.
Bjorne är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-10-12, 12:10 #6
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Har du mätt vioken effekt din lösning har?

Troligen helt meningslös, då 99,9% av den tid som "konsumeras" är väntetid på att användaren ska agera.
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-10-12, 12:11 #7
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
Citat:
Ursprungligen postat av Jonas Visa inlägg
Är MySQL flaskhalsen på din sida så bör du nog se över dina frågor till MySQL.

Att lagra något sånt här i sessionen anser jag onödigt. Sessioner lagras som standard på disk, och disken är oftast en större flaskhals än MySQL, eftersom MySQL lagrar oftast i minnet.
Har inga flaskhalsar alls ännu, detta är snarare tänkt i ett förebyggande syfte.

Citat:
Ursprungligen postat av Bjorne Visa inlägg
Så länge du inte har bevisat för dig själv att optimeringen har en mätbar effekt och att den verkligen behövs är det bara onödigt. Om du kommer fram till att du behöver cachning, kolla på memcached som är en mer holistisk och robust lösning än att handknacka en egen specialcache.
memcached måste installeras på servern va? Min lösning måste vara flexibel och fungera på alla webbhotell.

Citat:
Ursprungligen postat av najk Visa inlägg
Hur ofta ändras menyn? Är menyn individuellt anpassad?
Min tanke är att det räcker med en menycache för alla användare, istället för att varje session ska ha sin meny.
Menyn ändras lite då och då, än så länge är menyn inte special anpassad för användarna, men kan vara något för framtiden. Men menyn bör i alla fall laddas in varje gång en användare besöker sidan. Men lär inte behöva laddas in för varje sida som laddas in.

Ett helt annat alternativ skulle, så länge menyn inte anpassas efter besökaren vara att skapa en statisk html-fil varje gång menyn ändras. Detta kräver dock att man skriver och skapar en fil varje gång menyn ändras.

Tack för tankarna!
grinditwp är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-10-12, 12:14 #8
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
Citat:
Ursprungligen postat av ConnyWesth Visa inlägg
Har du mätt vioken effekt din lösning har?

Troligen helt meningslös, då 99,9% av den tid som "konsumeras" är väntetid på att användaren ska agera.
Nej, jag har inte mätt effekten, svårt att mäta skulle jag tro utan att servern är belastad. Tanken är väll att det skall vara mätbart och avlasta mysql när besökarna är uppe mot ett par tusen. Tror du inte att det skulle vara mätbart då? Mår inte MySQL servern bra av att få ett par tusen anrop mindre?
grinditwp är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-10-12, 12:29 #9
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Citat:
Ursprungligen postat av grinditwp Visa inlägg
Nej, jag har inte mätt effekten, svårt att mäta skulle jag tro utan att servern är belastad. Tanken är väll att det skall vara mätbart och avlasta mysql när besökarna är uppe mot ett par tusen. Tror du inte att det skulle vara mätbart då? Mår inte MySQL servern bra av att få ett par tusen anrop mindre?
Allting handlar om hur du har konfigurerat MySQL. En ensam MySQL maskin kan hantera mer än du tror, bara den är rätt konfigurerad.
Har en MySQL server som hanterar i snitt 2000 frågor i sekunden, och CPUn jobbar smått märkbart...
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-10-12, 12:33 #10
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
Citat:
Ursprungligen postat av Jonas Visa inlägg
Allting handlar om hur du har konfigurerat MySQL. En ensam MySQL maskin kan hantera mer än du tror, bara den är rätt konfigurerad.
Har en MySQL server som hanterar i snitt 2000 frågor i sekunden, och CPUn jobbar smått märkbart...
Ok, jo jag vet att MySQL kan jobba på bra. Jag har dock oftast ingen kontroll över själva MySQL, eftersom jag oftast inte väljer webbhotell.
Men även om MySQL kan klara av flera tusen anrop per sekund så finns det väll ingen anledning att inte optimera för den delen?
grinditwp är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 12:27.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017