求教SQL语句优化
yalan 2020-03-01 02:08:56 千万行的表,快到亿了,使用 in 字句要崩溃啊,求优化方法。
表结构简述如下:
id,username,regtime,loginip,logindatetime
想要检索出登录10次以上的用户,现在用的语句是:
select * from table where username in (select username from table group by username having count(*)>10)
如果加上条件,要检索出某天登录10次以上、来自某几个IP的用户,更慢:
select * from table where username in (select username from table group by username having count(*)>10) and date(logindatetime)='2019-12-12' and loginip in('1,1,1,1','2.2.2.2','3.3.3.3')
折腾了半天,快崩溃了。。。求优化