這是我的查詢誰能告訴我,爲什麼這個查詢需要很長時間EXCUTE ...MySQL的左連接查詢需要太多的時間來執行
select gf_film.film_id,
film_name,
DATE_FORMAT(film_release_date,'%d') as date,
DATE_FORMAT(film_release_date,'%m') as month_ori,
DATE_FORMAT(film_release_date,'%M') as month,
DATE_FORMAT(film_release_date,'%Y') as year,
film_release_date,
film_feature,
film_modify,
no_of_views,
original_poster_url,
(total_value/total_votes) as rate
from gf_film left join gf_film_views
on gf_film.film_id=gf_film_views.film_id
left join gf_film_poster
on gf_film.film_id=gf_film_poster.film_id
left join gf_film_rate
on gf_film.film_id=gf_film_rate.film_id
order by rate desc
這是說明表
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE gf_film ALL NULL NULL NULL NULL 21434 Using temporary; Using filesort
1 SIMPLE gf_film_views eq_ref film_id film_id 4 go4film.gf_film.film_id 1
1 SIMPLE gf_film_poster eq_ref film_id film_id 4 go4film.gf_film.film_id 1
1 SIMPLE gf_film_rate eq_ref PRIMARY PRIMARY 4 go4film.gf_film.film_id 1
請適當地格式化你的SQL,並提供對數據庫的一些背景。 「EXPLAIN SELECT ...」的輸出是最好的選擇。 – wuputah 2010-09-24 18:52:59
@ Stargazer712:感謝您對此進行格式化,我感到頭暈目眩。 – egrunin 2010-09-24 18:53:28
需要多長時間?表中的項目數量?你有沒有在數據庫中的film_id字段上建立索引? – 2010-09-24 18:53:55