Здравствуйте... у меня есть запрос:
SELECT tf. * , tt. * , tu.user_id, user_name, MAX( tp.post_id ) AS last_id, COUNT( tp.post_id ) AS count_posts
FROM rusfusionmodsf_forums tf
INNER JOIN rusfusionmodsf_threads tt
USING ( forum_id )
INNER JOIN rusfusionmodsf_posts tp
USING ( thread_id )
INNER JOIN rusfusionmodsf_users tu ON tt.thread_lastuser = tu.user_id
WHERE forum_access =0
GROUP BY thread_id
ORDER BY thread_lastpost DESC
LIMIT 0 , 10
он очень грузит сервер и выполняется больше секунды
запрос с EXPLAIN:
EXPLAIN SELECT tf. * , tt. * , tu.user_id, user_name, MAX( tp.post_id ) AS last_id, COUNT( tp.post_id ) AS count_posts
FROM rusfusionmodsf_forums tf
INNER JOIN rusfusionmodsf_threads tt
USING ( forum_id )
INNER JOIN rusfusionmodsf_posts tp
USING ( thread_id )
INNER JOIN rusfusionmodsf_users tu ON tt.thread_lastuser = tu.user_id
WHERE forum_access =0
GROUP BY thread_id
ORDER BY thread_lastpost DESC
LIMIT 0 , 10
выдает следующее
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE tp ALL thread_id NULL NULL NULL 18671 Using temporary; Using filesort
1 SIMPLE tt eq_ref PRIMARY PRIMARY 2 allfusion_sfroot.tp.thread_id 1
1 SIMPLE tu eq_ref PRIMARY PRIMARY 2 allfusion_sfroot.tt.thread_lastuser 1
1 SIMPLE tf eq_ref PRIMARY PRIMARY 2 allfusion_sfroot.tt.forum_id 1 Using where
помогите разобраться что к чему!