Комментарии 6
pg-index-health
То есть выгоднее ставить «первыми» поля, имеющие как можно меньше уникальных значений.
Но ведь наоборот, при единичной выборке значения, если первым полем в индексе будет В, а вторрым будет поле А, то за меньшее количество шагов сканирования, мы отбросим больше данных!
То есть будет выше селективность индекса.
Даже если индекс будет больше, что с того, при более селективном индексе быстрее найдется запись, при этом переберется меньше значений, то есть размер индекса не основной показатель, важнее скорость доступа к листу (количество seek шагов).
Предположим, что нам придется вычитать за несколько итераций все элементы индекса. В обоих случаях их количество будет одним и тем же, но суммарный прочитанный объем - разным. То есть и "в среднем" доступ к одной записи более объемного индекса окажется "дороже".
А селективность у них одинаковая, поскольку все равно необходимо при поиске пройти по всем полям индекса.
DBA: находим бесполезные индексы