Thread: INTERSECT / where id IN (etc..)
Greetings.
I was wondering if somone out there could shed some light on a query performance issie I have.
I have a large lookup table that I query with nested selects to gain the INTERSECT result from.
the bigger this table gets the slower the performance.
1. is creating a temp table and only intersecting from this a good idea?
2. does having a where clause in your select before your nested intersects change the amount of work the query
i.e. select person_id from person where person_id < 5000 And person_id IN
as opposed to
select person_id from person where person_id IN(etc)
thoughts?
> Greetings. > > I was wondering if somone out there could shed some light on a query > performance issie I have. I have a large lookup table that I query > with nested selects to gain the INTERSECT result from. > > the bigger this table gets the slower the performance. > > 1. is creating a temp table and only intersecting from this a good idea? > > 2. does having a where clause in your select before your nested > intersects change the amount of work the query > > i.e. select person_id from person where person_id < 5000 And > person_id IN as opposed to select person_id from person where > person_id IN(etc) > > thoughts? person_id<5000 probably won't help - postgres will use index on exact person_id if possible. Anyway - for large queries try change IN (...) into EXISTS (...), or just into explicit join if possible. IN clause is rather slow for bigger amount of data. Regards, Tomasz Myrta