Я написал запрос, но хочу знать, будет ли это время выполнения медленным или быстрым? Можем ли мы использовать любую альтернативу IN
, поскольку в таком небольшом запросе он используется 4 раза. Можно ли лучше написать этот запрос? Более того, я смущен, потому что кто-то хочет запросить его с большим количеством ep_et_id
, и то, как я написал, это не место, где можно упомянуть ep_et_id
Приведенный ниже запрос извлекает 74133 результатов в 14,55 сек в прямом Postgres звонке. Но я считаю, что это займет больше времени, если я вызову его с веб-страницы.
select lp, ob_id
from ob_in
where ob_id in (select ob_id
from ob_for_e
where ep_et_id in (select ep_et_id
from rrts rep
left join rrts_inf rinf on rep.rrts_id = rinf.rrts_id
where rrts_type in ('FR','IN')
and rinf.status in('V')))
Таблицы, которые я здесь использую: ob_in
, ob_for_e
, rrts
, rrts_inf
Точка местоположения lp
находятся в таблице ob_in
, и я поставил много IN
для извлечения идентификаторов из таблицы, чтобы применить последнее условие к таблице rrts_inf
для типа FR
, IN
и статуса с V