SELECT
*
FROM
table
WHERE
("col1" IN (1,2,3) OR "col2" IN (3,4,5))
AND add_condition(blah)
;
таблица большая. в условии индекса add_condition(blah)
Если строить индекс по
col1, col2 WHERE add_condition(blah)
То получается перебор col2
если наоборот - то опять перебор col1
перебора не получается только если WITH/UNION секцию юзать и два индекса.
в два запроса:
SELECT
*
FROM
table
WHERE
col1 IN (1, 2, 3)
AND add_condition(blah)
и второй запрос
SELECT
*
FROM
table
WHERE
col2 IN (3,4,5)
AND col1 NOT IN (1,2,3)
AND add_condition(blah)
а можно как-то одним индесом сыграть?
--
. ''`. Dmitry E. Oboukhov
: :’ : email: unera@debian.org jabber://UNera@uvw.ru
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
`- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537