Это полностью зависит от того, сколько сессий обычно присутствует (что, в свою очередь, зависит от того, сколько у вас пользователей, сколько времени они остаются на сайте и время ожидания сеанса) и сколько оперативной памяти имеет ваш сервер.
Но прежде всего: вы действительно использовали профилировщик памяти, чтобы сказать вам, что ваше "высокое использование памяти" вызвано данными сеанса, или вы просто догадались?
Если единственной проблемой, с которой вы сталкиваетесь, является «высокое использование памяти» на рабочей машине (то есть она может справиться с производственной нагрузкой, но не работает так, как вам хотелось бы), самое простое решение - получить больше оперативной памяти для сервер - намного быстрее и дешевле, чем редизайн приложения.
Но кэширование целых наборов результатов в сеансе также плохо по другой причине: что, если данные изменятся в БД, и пользователь ожидает увидеть это изменение? Если вы собираетесь кешировать, используйте одну из существующих систем , которая делает это на уровне запросов к БД - они позволят вам кэшировать результаты между пользователями, и у них есть средства для аннулирования кеша.