Есть запрос
EXPLAIN SELECT * FROM TABLE WHERE fk_id=x;
"Seq Scan on table (cost=0.00..422.09 rows=14791 width=66)" " Filter: (fk_id = 33)"
"Index Scan using table_fk_id_idx on table (cost=0.00..48.82 rows=108 width=66)" " Index Cond: (fk_id = 32)"
Оба значения присутствуют в ключевой таблице до создания индекса. Как понять работу оптимизатора? и как добиться чтоб при изменении x план не изменялся?
http://postgresql.ru.net/docs
http://postgresql.ru.net/docs/FAQ_russian.html#item4.6
а далее курить доки