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;這句報錯,不知道原因在哪?還有其他什么方面可以優化的嗎?
MySQL多條件join優化
LEATH
2019-04-21 20:37:47