次を返すこのクエリがあります。
- 地域名
- 地域ID
- 総投票数に基づく、この地域の RANK (位置)
- この地域の個別のユーザーの数
- この地域の明確な写真の Nb
クエリが完了するまでに約 7.5 秒かかります...クエリを最適化するためのアドバイスをお願いします。
select
WrappedQuery.*,
regions.name as region_name,
regions.id as region_id,
count(distinct users.id) as nb_users,
count(distinct photos.id) as nb_photos
from (
select
@rownum := @rownum +1 as rank,
prequery.region_id,
prequery.VoteCount
from
( select @rownum := 0 ) sqlvars,
( select region_id, count(id) VoteCount
from votes
where theme_id = '{$currentTheme}'
group by region_id
order by count(id) desc ) prequery
) WrappedQuery, regions, users, photos
WHERE regions.id = WrappedQuery.region_id
AND users.region_id = WrappedQuery.region_id
AND photos.region_id = WrappedQuery.region_id
GROUP BY WrappedQuery.region_id
ORDER BY WrappedQuery.rank ASC
LIMIT 0, 1
よろしくお願いします。