求教SQL语句优化

yalan yalan 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
千万行的表,快到亿了,使用 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')

折腾了半天,快崩溃了。。。求优化
...全文
评论 9
收藏 已收藏
分享
返回顶部
yalan
MySQL 57,062 成员 56,759 内容