Hvis dine data bruges på alle sider og er ens for alle brugere, ville jeg ikke cache dem i $_SESSION (hvilket betyder at have en anden kopi af disse data for hver bruger), men med en anden mekanisme, såsom :
- fil
- I hukommelsen, med APC for eksempel (hvis kun 1 server)
- I hukommelsen, med memcached, for eksempel (hvis du har flere servere)
- Hvis dine data kræver lange beregninger eller flere DB-forespørgsler, der skal indhentes, kan cachelagring i databasen være en anden mulighed (vil kun betyde 1 forespørgsel at hente tilbage og færre beregninger)
Hvis dine data ikke er de samme for hver bruger (hvilket ser ud til at være tilfældet i din situation, da du cachelagrer navne, fødselsdatoer, ...) :
- Jeg vil sørge for, at jeg kun cacher det nødvendige
- Når du kun har nogle få data at cache, burde det være helt OK at sætte dem i session.
- Hvis du virkelig har så mange brugere, vil du sandsynligvis have nogle andre skalerbarhedsproblemer, og vil højst sandsynligt komme til at bruge noget som memcached alligevel; hvilket betyder, at du har en anden måde at cache på;-)
Som en sidenote:hvis du laver den samme forespørgsel igen og igen, skal din DB-server cache den af sig selv (for MySQL ville den gå ind i "forespørgselscache "); så det ville ikke være så slemt, som du tror, formoder jeg -- selvom det ikke er så meget optimeret ^^