Используйте сессии. А вот где уже их будете хранить - дело третье. Неоспоримым плюсом сессий является то, что можете легко изменить их место/способ хранения не затрагивая логику приложения. По умолчанию сессии хранятся в файлах, но легко переделываются на хранение в БД (что позволяет очень гибко с ними работать, да и при больших объемах БД ведет себя увереннее файлов - несколько лет назад было так, может сейчас уже и файлы подтянулись), если не хватает скорости, то есть расширения для php которые хранилищем сессий делают в memcache или redis (в тяжелых проектах сам использую этот вариант - можно смело говорить о десятках тысяч сессий). Используя механизм сессий, вы сможете переключаться между типом хранения буквально за 5 минут.
Только обратите внимание, что если вы измените настройки пользователя в соответствующей ему записи в БД, то в сессии они еще останутся старыми. Этим надо будет управлять. Все зависит от целей приложения. Но в любом случае, сессия берет на себя передачу данных между запросами, и почему бы не вынести в нее часть информации. Вы же все равно как-то передаете логин и статус, что пользователь залогенен, скорее всего используете сессии. А если сессия у вас уже есть, то она будет быстрее вытаскивать еще некоторое количество информации о пользователе.
Я думаю, нужно делать так, как вам удобнее. Универсального решения для абстрактного проекта не бывает. Оптимизировать на начальном этапе тут нечего.