Я разрабатываю свой проект с учетом масштабируемости и наткнулся на распутье. На моем веб-сайте я хотел бы определить, находится ли пользователь в сети или нет. И я не могу придумать лучший способ справиться с этим. Я думал, что это будет что-то вроде этого (в псевдокоде):
// SQL user table:
user {
"name": "blah blah",
"email": "derpy@derpyderp.com",
"online": false
}
Таким образом, всякий раз, когда пользователь входит в систему, я мог обновить его онлайн
столбец до true
. Однако это в конечном итоге приведет к тому, что SQL-запросы будут выполняться каждый раз, когда пользователь входит в систему, и если случится, что я получу, скажем, 10 входов в секунду, ну, это будет много запросов. Я решил, что могу сделать то же самое другим способом, но в другой таблице:
// Activity table:
activity {
"user_id": 2,
"online": true
}
По какой-то причине я считаю, что это приведет к меньшему потреблению памяти из-за отделения от таблицы user
. Однако я не уверен, что это действительно повлияет на производительность.
Так что, если бы вы могли благословить меня своим пониманием, я был бы более чем благодарен, спасибо.