公司的业务有个功能需要查询哪些用户在某个时间内跟指定的某个用户使用相同的IP登录,
也就是查询条件是 userid='xxx', addtime>'2018-06-06 00:00:00'
Log表的结构是:
id int pk,
userid varchar(20),
ip varchar(50),
addtime datetime
目前做了组合索引
索引1:ip
索引2:userid,addtime
索引3:userid,addtime,ip
当数据达到25W条的时候,根据查询的条件所消耗的时间很长
下面是我目前使用的语句
select top 50 [userid],[ip],[addtime] from log
where [userid]<>'xxx' and addtime>'2018-06-06 00:00:00' and ip in (
select ip from log where [userid]='xxx' and addtime>'2018-06-06 00:00:00' group by ip)
大家如果有好的办法,请帮我解决一下,谢谢。
杨魅力
狐的传说