Как понять работу оптимизатора?

Есть запрос

EXPLAIN 
SELECT * FROM TABLE
WHERE fk_id=x;

если x=33, ответ такой
"Seq Scan on table  (cost=0.00..422.09 rows=14791 width=66)"
"  Filter: (fk_id = 33)"

если x=32, ответ такой
"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
а далее курить доки

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023