Om din data används på alla sidor och är densamma för alla användare, skulle jag inte cachelagra den i $_SESSION (vilket innebär att ha en annan kopia av den datan för varje användare), utan med en annan mekanism, som :
- fil
- I minnet, med APC till exempel (om bara 1 server)
- I minnet, med memcached, till exempel (om du har flera servrar)
- Om din data kräver långa beräkningar eller flera DB-frågor för att erhållas, kan cachelagring av den i databasen vara en annan möjlighet (skulle innebära endast en fråga att hämta tillbaka och färre beräkningar)
Om dina uppgifter inte är samma för varje användare (vilket verkar vara fallet i din situation, eftersom du cachelagrar namn, födelsedatum, ...) :
- Jag skulle se till att jag bara cachelagrade det som är nödvändigt
- När du bara har ett fåtal data att cache, bör det vara helt OK att lägga in den i sessionen
- Om du verkligen har så många användare kommer du förmodligen att ha några andra skalbarhetsproblem och kommer troligen att använda något som memcached ändå; vilket betyder att du har något annat sätt att cache;-)
Som en notis:om du gör samma fråga om och om igen, bör din DB-server cache den själv (för MySQL skulle den gå in i "frågecache "); så det skulle inte vara så illa som du tror, antar jag -- även om det inte är så mycket optimerat ^^