我正在开发一个考虑到可扩展性的项目,我已经走到了一个十字路口。在我的网站上,我想检测用户是否在线。我想不出最好的方法来处理这个问题。我的想法是这样的(在伪代码中):
// SQL user table:
user {
"name": "blah blah",
"email": "derpy@derpyderp.com",
"online": false
}
因此,每当用户登录时,我都可以将他的online
列更新为true
. 然而,这最终会导致每次用户登录时都会发生 SQL 查询,如果发生这种情况,我会说,每秒 10 次登录,那么,就会发生很多查询。我想我可以做同样的事情但在不同的表中的另一种方法:
// Activity table:
activity {
"user_id": 2,
"online": true
}
出于某种原因,我相信由于与表的分离,这会导致更少的内存消耗user
。但是我不确定它是否会对性能产生任何实际影响。
所以,如果你能用你的洞察力祝福我,我会更加感激,谢谢。