为了账号安全,请及时绑定邮箱和手机立即绑定

MySQL多条件join优化

MySQL多条件join优化

慕无忌1623718 2019-04-10 20:48:43
SELECTuser.nickname,visitors.week_likesFROMuserJOINvisitorsON(user.id=visitors.user_id)WHERE(user.role>=0ANDvisitors.week_num=10ANDvisitors.week_likes>0AND(user.show_index!=-1ORuser.show_indexISNULL))ORDERBYvisitors.week_likesDESC,user.last_seenDESCLIMIT100user.id和visitors.id是主键,user.id与visitors.user_id对应。对visitors.user_id建立了索引,没什么效果,在SQL语句和索引方面能怎样优化?由于week_num和week_likes的区分度很低(=0AND(user.show_index!=-1ORuser.show_indexISNULL))aJOIN(SELECTvisitors.user_id,visitors.week_likesFROMvisitorsWHERE(visitors.week_num=10ANDvisitors.week_likes>0))bON(a.id=b.user_id)ORDERBYb.week_likesDESC,a.last_seenDESCLIMIT100;这句报错,不知道原因在哪?还有其他什么方面可以优化的吗?
查看完整描述

2 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

explain呢?tabledesc呢?
补充一下:通常数据量大,检索条件复杂,请求量也大的应用场景,考虑一下sphinx、elasticsearch的解决方案。
                            
查看完整回答
反对 回复 2019-04-10
  • 2 回答
  • 0 关注
  • 330 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信