willko
請問怎么優化子查詢?
SELECT count(*) AS recommend_total, forum_title_id FROM recommend_title_user_temp WHERE user_id = ANY(SELECT user_id FROM recommend_title_user_temp WHERE forum_title_id = '1710879') AND forum_title_id != '1710879' GROUP by forum_title_id HAVING recommend_total > 0 ORDER BY recommend_total DESC LIMIT 5
*************************** 1. row ***************************
id: 1
select_type: PRIMARY
table: recommend_title_user_temp
type: range
possible_keys: forum_title_id
key: forum_title_id
key_len: 4
ref: NULL
rows: 15
Extra: Using where; Using index; Using temporary; Using filesort
*************************** 2. row ***************************
id: 2
select_type: DEPENDENT SUBQUERY
table: recommend_title_user_temp
type: eq_ref
possible_keys: forum_title_id,user_id
key: forum_title_id
key_len: 8
ref: const,func
rows: 1
Extra: Using where; Using index
請問有沒有辦法優化?
數據量很大的時候性能怎樣?
yueliangdao0608
[table=95%][tr][td][font=FixedSys][color=#000000][color=#0000FF]SELECT[/color] a[color=#0000CC].[/color][color=#0000CC]*[/color] [color=#0000FF]FROM[/color] recommend_title_user_temp [color=#0000FF]as[/color] a join [color=#0000CC]([/color][color=#0000FF]SELECT[/color] user_id [color=#0000FF]FROM[/color] recommend_title_user_temp [color=#0000FF]WHERE[/color] forum_title_id [color=#0000CC]=[/color] [color=#FF00FF]'1710879'[/color][color=#0000CC])[/color] [color=#0000FF]as[/color] b on [color=#0000CC]([/color]a[color=#0000CC].[/color]user_id [color=#0000CC]=[/color] b[color=#0000CC].[/color]user_id[color=#0000CC])[/color][/color][/font][/td][/tr][/table]