само собой хранить таймстамп последней активности, но я думаю о нагрузке при смене статуса на оффлайн, если пользователей к примеру миллион
а где вы видите нагрузку ? вы же где-то выводите имя пользователя, тут у вас нагрузки нету, а проверить таймстамп этого же юзера вдруг стало слишком нагрузочно... ну или задачу оформите более четко, то что у вас огроменские миллионы мы уже поняли, но непонятно в чем у вас проблема
В смысле? А зачем менять статус на оффлайн? Достаточно просто проверять на разницу не более, чем в пять минут.