确定数据库中登录用户数的有效方法

时间:2012-11-29 21:06:36

标签: mysql sql database

我们的MySQL数据库有一个users表,其中logged_in, BOOL列是在检测到用户登录或注销时设置的。

在我们的网站上,我们会显示“登录到应用程序的用户”,但出于性能原因,我担心只是执行SELECT COUNT(*) FROM users WHERE logged_in = 1

我们希望users表可能有几千行,但是任何时候都只会有少数(例如20个)用户登录。

有没有办法确保可以在MySQL中优化此查询,可能涉及KEY或VIEW?或者我是否需要创建像logged_in_users旁边用户这样的辅助表并更新它?

1 个答案:

答案 0 :(得分:0)

  1. 如果logged_in上有一个索引,那么它应该是一个非常快速的查询,因为登录的数量相当小,并且整个用户表都很小(但是,logged_in = 0可能效率不高) :))这是其中一个例子,其中只有2个可能值的列上的索引可以对其中一个值进行超高效查询。
  2. 不要count(*),执行count(your_primary_key)。这样,如果您已对logging_in建立索引,则会覆盖整个查询以获得最佳性能。
相关问题