Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Postgres: selectivity, cardinality, index choice, optimizer, uniqueness

Что такое высокая и низкая селективность?

Проверяет понимание показателя уникальности значений в столбце для индексации.

Короткий ответ

Селективность — это доля строк, удовлетворяющих условию по колонке. Высокая селективность означает много уникальных значений (например, UUID), индекс по такому полю отбирает небольшую часть строк и эффективен. Низкая селективность (например, пол «пол» с двумя значениями) возвращает большую часть строк, и индекс по нему мало ускоряет запросы.

Длинный ответ

Определение:

  • selectivity = cardinality / total_rows.

Высокая селективность:

  • Cardinality близка к числу строк → точечные выборки.

Низкая селективность:

  • Cardinality маленькая → запросы возвращают много строк.

Влияние на индексы:

  • Оптимизатор предпочитает индексы с высокой селективностью.

  • Для низкоселективных полей лучше полный скан.

Пример:

  • email или id — высокоселективные.

  • is_active — низкоселективный.

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    1

  • Сложность:

    7

Навыки

  • Postgres

    Postgres

Ключевые слова

#selectivity

#cardinality

#index choice

#optimizer

#uniqueness

Подпишись на Python Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.