如果您擁有一百萬個遊戲用戶羣,但只希望一次登錄一個用戶羣,那麼最好如何組織結構,以便您可以在您的網站上顯示活躍用戶的數量?你不會想(我認爲)做一個天真的SELECT count(*) FROM users WHERE logged_in = 1
如何有效地追蹤大型用戶羣中登錄用戶的數量
回答
兩件事情。首先,在logged_in列上放置索引。第二,我假定這只是一個錯字(缺少選擇列),如果你需要的是一個數,這是你的查詢:
select count(*) from users were logged_in = 1
您可以保持一個單獨的統計數據表來跟蹤您想要快速訪問的任意數量的聚合。這並不是一個壞主意。但是,添加一個索引應該保持這個特定的查詢很快。一旦您開始需要定期報告其他聚合用戶統計信息,請爲此創建一個統計信息表。
請記住,統計資料表往往是非常簡單的,如果/當你走這條路線:
stat_id : int
name : varchar
int_value : int
float_value : float
然後,每次登錄時只需...
update stats set int_value += 1 where name = 'logged_in_users';
而且每註銷需要...
update stats set int_value -= 1 where name = 'logged_in_users';
而且可能會自動登錄用戶並定期「重建」統計表。
我會保持一個logins
表,添加到這張表,無論何時用戶登錄和當用戶註銷,刪除條目。 該表還可以有到期時間,讓你可以考慮登錄超時和查詢功能:
SELECT COUNT(*) FROM dbo.Logins WHERE LoginExpiry < GETDATE()
如果用戶突然斷開連接,該怎麼辦?電源浪涌,互聯網連接斷開等等。並非所有的斷開都是優雅的,這應該在應用程序級而不是數據庫中進行處理。 –
取決於你如何處理用戶?你可以添加更多的細節? – bendataclear
有一些細節需要考慮。我們甚至不知道op的應用程序平臺(php?ror?android?ios?windows?)。我只是認爲你的回答低估了這個問題的複雜性。 –
- 1. 如何有效地跟蹤最大的用戶輸入值?
- 2. 如果用戶在React中登錄,全局追蹤方式?
- 3. 跟蹤登錄用戶
- 4. 跟蹤登錄用戶
- 5. 如何追蹤我的python包的用戶羣?
- 6. 跟蹤用戶登錄的次數?
- 7. 在django中包含django登錄用戶追蹤錯誤
- 8. 沙箱用戶登錄 - 無效地址
- 9. 如何通過您的應用追蹤用戶流量
- 10. django admin有效用戶登錄失敗
- 11. 確定數據庫中登錄用戶數的有效方式
- 12. 你如何讓用戶追蹤文字?
- 13. 如何追蹤用戶進行購買?
- 14. 如何根據用戶根據登錄的用戶登錄
- 15. 如何爲所有用戶的登錄
- 16. 如何跟蹤用戶在mvc中的登錄/註銷
- 17. 如何跟蹤wordpress中未登錄的用戶?
- 18. 如何跟蹤MVC3中用戶的首次登錄?
- 19. 追蹤非註冊用戶
- 20. 追蹤用戶重訪?
- 21. 如何跟蹤使用JSF2和Servlet 3登錄的用戶
- 22. 如何使用Java登錄到本地Windows用戶帳戶
- 23. PDO:MVC如何根據用戶類型重定向用戶登錄
- 24. CHOWN無效的用戶羣
- 25. 測試本地用戶登錄數據
- 26. 如何限制登錄到應用程序的用戶數量?
- 27. 如果用戶登錄,Django的userena跟蹤如何?
- 28. 如何登錄到用戶帳戶?
- 29. IAM用戶如何登錄AWS賬戶?
- 30. 獲得 「無效」 上的用戶登錄
你知道,這很棘手。對於突然斷開連接的用戶,查詢數據庫將失敗。這應該在應用程序級別完成,您不會對我們一無所知 –
您使用的是哪個數據庫?例如,使用SQL Server,你可以使用帶有過濾索引的位標誌。 – RedFilter
@Adrian通過數據庫傳遞數據是一種非常正常的範例,無論是我們發現自己的用例,因此您必須在這些約束下工作:) –