Ако вашите данни се използват на всички страници и са еднакви за всички потребители, не бих ги кеширал в $_SESSION (което означава да имам различно копие на тези данни за всеки потребител), а с друг механизъм, като :
- файл
- В паметта, с APC например (ако има само 1 сървър)
- В паметта, с memcached, например (ако имате няколко сървъра)
- Ако данните ви изискват дълги изчисления или няколко DB заявки, за да бъдат получени, кеширането им в базата данни може да бъде друга възможност (би означавало само 1 заявка за обратно извличане и по-малко изчисления)
Ако данните ви не са еднакви за всеки потребител (което изглежда е така във вашата ситуация, тъй като кеширате имена, рождени дати, ...) :
- Ще се уверя, че кеширам само това, което е необходимо
- След като имате само няколко данни за кеширане, поставянето им в сесия трябва да е съвсем наред
- Ако наистина имате толкова много потребители, вероятно ще имате някои други проблеми с мащабируемостта и най-вероятно ще използвате нещо като memcached така или иначе; което означава, че ще имате друг начин за кеширане;-)
Като странична бележка:ако правите една и съща заявка отново и отново, вашият DB сървър трябва да го кешира сам (за MySQL той ще влезе в "кеш на заявки "); така че не би било толкова лошо, колкото си мислите, предполагам - дори и да не е толкова оптимизирано ^^