【发布时间】:2013-03-19 02:30:03
【问题描述】:
我有一张表,我在其中存储了我网站的所有登录信息。结构如下:
TABLE users_logins
loginid INT UNSIGNED AUTO_INCREMENT PRIMARY KEY
userid INT
iplogin VARCHAR(15)
logindate datetime
现在,我需要一个查询来检索使用相同 IP 进行首次登录的用户数量。结果应该是这样的:
iplogin | numberofaccounts
正如我之前所说,“numberofaccounts”是第一次使用相同“iplogin”登录的用户数。
该表有大约 300k 行......那么我应该怎么做才能获得我需要的良好性能?
谢谢,
L.
【问题讨论】:
-
定义“良好的性能”。只有 300k 行,除非您将 486 用于服务器,否则这真的无关紧要。
-
表格中有多少个不同的用户 (
distinct user_id)?又有多少个不同的ip? -
@ypercube 不多,35k 左右
标签: mysql performance greatest-n-per-group