В приведенном примере у БД нет шансов увидеть корреляцию между значениями двух полей таблицы. И, соответственно, план запроса будет строиться из общих соображений. Увидев селективность по каждому из индексов, общее количество строк в таблице и другие параметры, БД может:
То есть если кратко может быть все что угодно :)
И любое поведение будет неправильным.
Обзор подобных случаев был бы гораздо интереснее чем простенькое описание поведения в штатной ситуации.
Мой пост ни в коем случае не претендовал на полноту охвата вопроса, а просто поднимал проблему, которую многие (на моем личном опыте) совсем не понимают, считая наличие индекса панацеей от всех проблем.
То что касается моего ответа на предыдущий пост — да, может быть всё, что угодно, и это зависит не только от запроса/схемы базы данных, но и от данных таблицы, а они могут быть разными. Также влияет настройка оптимизатора и т.п. Тут нет четкой границы вида «100» записей и индекс начнет работать или наоборот. С другой стороный, очевидно, что в таблице из двух строк база данных никогда не будет использовать ни один индекс (это крайний случай).
Индексы и селективность (PostgreSQL)