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語句和索引方面能怎樣優(yōu)化?由于week_num和week_likes的區(qū)分度很低(=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;這句報錯,不知道原因在哪?還有其他什么方面可以優(yōu)化的嗎?
MySQL多條件join優(yōu)化
尚方寶劍之說
2019-04-19 16:13:05