не работает индекс по таблице - Mailing list pgsql-ru-general

From Genix
Subject не работает индекс по таблице
Date
Msg-id 435A4554.6060103@list.ru
Whole thread Raw
List pgsql-ru-general
Приветствую!

Имеем несколько действий:

drop table t1;

select post_addresses_id into t1 from persons where $условие;

create index t1_ on t1 (post_addresses_id);

select count(*) from addresses where
   exists ( select addresses_id from t1 where
addresses.addresses_id=t1.post_addresses_id)

на самом деле, в последнем запросе вместо select count(*) нужно делать
удаление, но для проверки я использовал именно этот вариант, ибо оба они
выполняются одного порядка времени.

так вот, если все написано так как есть, то последний запрос выполняется
около 8 секунд (у меня небольшой, тестовый набор данных) и по обоим
таблицам идет seq_scan.

если же поменять местами две таблицы, т.е.:

select count(*) from t1 where
   exists ( select addresses_id from addresses where
addresses.addresses_id=t1.post_addresses_id)

то запрос пробегается за 40 мс и по таблице addresses подхватывается
индекс. Но ведь удалять-то надо именно из addresses, и такой вариант
условия exists уже не подходит $)


решение было найдено:
set enable_seqscan=false;

вот только возник вопрос, правильно ли что PostgreSQL так сильно ошибается?

--
У каждого в башке свои тараканы...

pgsql-ru-general by date:

Previous
From: Maxim Vetrov
Date:
Subject: Кодировка
Next
From: Oleg Bartunov
Date:
Subject: Re: Кодировка