Visa ett inlägg
Oläst 2006-04-05, 20:56 #17
dotvoid dotvoid är inte uppkopplad
Medlem
 
Reg.datum: Apr 2006
Inlägg: 199
dotvoid dotvoid är inte uppkopplad
Medlem
 
Reg.datum: Apr 2006
Inlägg: 199
Som jag sa tidigare, vilka behov man har skiljer sig åt väldigt. Har man en distribuerad miljö med flera lastbalanserade servrar är det ganska meningslöst att hålla sessionsdata i minnet på en enskild server. Då har man andra behov än om man har en enda server. Då måste man ha en fristående server för sessioner - oavsett metod för datalager. Ofta används t ex LDAP-databaser som lagringsmetod för single-sign-on-system då det normalt ger väldigt snabb åtkomst till data.

Om du pratar om HEAP (eller MEMORY) i MySQL finns också en del nackdelar eller risker om du hanterar många sessioner. Låt säga att du behöver lagra sessioner i minnet för att orka med prestandamässigt - då har du troligen många sessioner du hanterar och hög trafik (eller en dåligt dimensionerad maskin). Om du skulle få osedvanligt hög last helt plötsligt riskerar du att slå i taket och då konverterar MySQL automatiskt minnestabellerna till diskbaserade tabeller. Orkar maskinen med det då om du inte dimensionerat för detta? Och om du dimensionerat för detta - varför inte köra med diskbaserade tabeller redan från början?

Vill du ha hög tillgänglighet och använder replikering mellan två eller fler databaser finns också problem med minnesbaserade tabeller som måste hanteras. Skulle master-databasen gå ner rensas de minnesbaserade tabellerna helt från data. Detta hanteras inte alls av child-servrarna som då behåller gammal data.

Oavsett vilken modell man väljer, distribuerad eller ej, ser jag fortfarande ingen vits med att inte använda $_SESSION och php:s inbyggda sessionsmekanismer eftersom man ju normalt sett bygger egna lagringsmetoder och registrerar dem. Jag har svårt att tro att du nånsin kan få bättre prestanda med 12k php-kod än om du använder dig av den kompilerade c-koden i php-interpretatorn - oavsett om du lagrar det lokalt i minnet eller använder dig av mer raffinerade modeller.

Däremot inte sagt att din kod inte fungerar. Det gör den säkert. Alla, eller många, skrev sin egna sessionshantering innan den inbyggda implementerades i php - även jag. Så du gör som du vill - bra va
dotvoid är inte uppkopplad   Svara med citatSvara med citat