Pokud jsou vaše data používána na všech stránkách a jsou stejná pro všechny uživatele, neukládal bych je do mezipaměti v $_SESSION (což znamená mít pro každého uživatele jinou kopii těchto dat), ale pomocí jiného mechanismu, jako:
- soubor
- V paměti, například s APC (pokud je pouze 1 server)
- V paměti, například s memcached (pokud máte několik serverů)
- Pokud vaše data vyžadují dlouhé výpočty nebo získání několika DB dotazů, může být další možností jejich uložení do mezipaměti v databázi (znamenalo by to pouze jeden dotaz k načtení zpět a méně výpočtů)
Pokud vaše data nejsou pro každého uživatele stejná (což se zdá být případ vaší situace, protože do mezipaměti ukládáte jména, data narození, ...) :
- Ujistil bych se, že ukládám do mezipaměti pouze to, co je nezbytné
- Jakmile budete mít do mezipaměti jen několik dat, jejich uvedení do relace by mělo být v pořádku
- Pokud máte opravdu tolik uživatelů, pravděpodobně budete mít nějaké další problémy se škálovatelností a stejně nejspíše začnete používat něco jako memcached; což znamená, že budete mít jiný způsob ukládání do mezipaměti;-)
Jako vedlejší poznámka:pokud děláte stejný dotaz znovu a znovu, váš DB server by jej měl sám uložit do mezipaměti (pro MySQL by to šlo do "mezipaměť dotazů "), takže by to nebylo tak špatné, jak si myslíte, předpokládám - i když ne tak moc optimalizované ^^