predator
web designer
оптимизация запроса
было
стало
первый вариант вешал сервер когда данных стало много
я насчёт distinct хочу уточнить
поидее он там нужен только для того чтобы избежать NULL который может
появиться при LEFT JOIN
я прав?
было
PHP:
SELECT
p.id, p.site_id, p.type, t.title, t.url, p.status, p.status_comments, k.mode, k.generate_period, p.created_date,
count(distinct d.id ) noofcreated , count(distinct z.id) AS `noofkeys`, k.generate_keywords AS `generate`
FROM hct_projects_tb p
LEFT JOIN hct_portals_sites_tb t ON p.site_id = t.id
LEFT JOIN hct_keywords_projects_tb k ON p.id = k.project_id
LEFT JOIN hct_keyword_source_tb s ON k.id = s.keyword_project_id
LEFT JOIN hct_keyword_details_tb d ON ( s.id = d.keyword_source_id AND d.generated = 'Y' )
LEFT JOIN hct_keyword_details_tb z on (s.id = z.keyword_source_id AND z.generated = 'N')
WHERE p.user_id=13242 and p.id = k.project_id AND k.id = s.keyword_project_id
GROUP BY p.id
PHP:
SELECT
p.id, p.site_id, p.type, p.status, p.status_comments, p.created_date,
t.title, t.url,
k.mode, k.generate_period, k.generate_keywords AS `generate`,
(SELECT count(*) FROM hct_keyword_details_tb WHERE s.id=keyword_source_id AND generated='Y') noofcreated,
(SELECT count(*) FROM hct_keyword_details_tb WHERE s.id=keyword_source_id AND generated='N') AS `noofkeys`
FROM hct_projects_tb p
LEFT JOIN hct_portals_sites_tb t ON p.site_id = t.id
LEFT JOIN hct_keywords_projects_tb k ON p.id = k.project_id
LEFT JOIN hct_keyword_source_tb s ON k.id = s.keyword_project_id
WHERE p.user_id=13242 and p.id = k.project_id AND k.id = s.keyword_project_id
GROUP BY p.id
я насчёт distinct хочу уточнить
поидее он там нужен только для того чтобы избежать NULL который может
появиться при LEFT JOIN
я прав?