Проверяет понимание показателя уникальности значений в столбце для индексации.
Селективность — это доля строк, удовлетворяющих условию по колонке. Высокая селективность означает много уникальных значений (например, UUID), индекс по такому полю отбирает небольшую часть строк и эффективен. Низкая селективность (например, пол «пол» с двумя значениями) возвращает большую часть строк, и индекс по нему мало ускоряет запросы.
Определение:
selectivity = cardinality / total_rows.
Высокая селективность:
Cardinality близка к числу строк → точечные выборки.
Низкая селективность:
Cardinality маленькая → запросы возвращают много строк.
Влияние на индексы:
Оптимизатор предпочитает индексы с высокой селективностью.
Для низкоселективных полей лучше полный скан.
Пример:
email или id — высокоселективные.
is_active — низкоселективный.