Subselect performance question
От | Josh Berkus |
---|---|
Тема | Subselect performance question |
Дата | |
Msg-id | web-1391672@davinci.ethosmedia.com обсуждение исходный текст |
Ответы |
Re: Subselect performance question
Re: Subselect performance question |
Список | pgsql-sql |
Folks, I have a view which can be designed with eithher a sub-select in the SELECT clause or the FROM clause. The main query data set is small (1000 records) but the table being filtered in the sub-select is large (110,000 records). Under those circumstances, is there a hard-and-fast rule for which query I should use? Most of the time, users will only look at one record at a time from the main data set. SELECT client_id, client_name, (SELECT count(*) FROM case_clients WHERE client_id = clients.client_id AND case_status = 'ACT') as active_count,(SELECT count(*) FROM case_clients WHERE client_id = clients.client_id AND case_status = 'STL') as settled_count, FROM clients; OR: SELECT client_id, client_name, active_count, settled_count, FROM clients LEFT OUTER JOIN (SELECT client_id, count(*) as active_count FROM case_clients WHERE case_status = 'ACT' GROUP BY client_id) ac ON ac.client_id = clients.client_id LEFT OUTER JOIN (SELECT client_id, count(*) as settled_count FROM case_clients WHERE case_status = 'STL' GROUP BY client_id) sc ON sc.client_id = clients.client_id; -Josh Berkus
В списке pgsql-sql по дате отправления: