Se i tuoi dati vengono utilizzati su tutte le pagine e sono gli stessi per tutti gli utenti, non li metterei nella cache in $_SESSION (il che significa avere una copia diversa di quei dati per ogni utente), ma con un altro meccanismo, come:
- file
- In memoria, ad esempio con APC (se solo 1 server)
- In memoria, ad esempio con memcached (se hai più server)
- Se i tuoi dati richiedono calcoli lunghi o più query DB da ottenere, la memorizzazione nella cache nel database potrebbe essere un'altra possibilità (significherebbe solo 1 query da recuperare e meno calcoli)
Se i tuoi dati non sono gli stessi per ogni utente (cosa che sembra essere il caso nella tua situazione, dato che stai memorizzando nella cache nomi, date di nascita, ...) :
- Mi assicurerei di memorizzare nella cache solo ciò che è necessario
- Una volta che hai solo pochi dati da memorizzare nella cache, metterli in sessione dovrebbe essere abbastanza OK
- Se hai davvero così tanti utenti, probabilmente avrai altri problemi di scalabilità e molto probabilmente utilizzerai comunque qualcosa come memcached; il che significa che avrai un altro modo di memorizzare nella cache;-)
Come nota a margine:se si esegue la stessa query più e più volte, il server DB dovrebbe memorizzarlo nella cache da solo (per MySQL, andrebbe in "cache delle query "); quindi, non sarebbe così male come pensi, suppongo -- anche se non così ottimizzato ^^