Индексирование по полю малой мощности - PullRequest
0 голосов
/ 24 сентября 2019

Допустим, у меня есть таблица с 1М строк и логическим полем, где 80% значений true и 20% false.Если я часто фильтрую это поле, будет ли полезно добавить индекс?

Я бы подумал, что да, поскольку база данных может ограничить записи до ~ 20% от полного сканирования таблицы (и использование NOT IN <ids> для случая, когда 80% записей).Является ли это точной оценкой того, как индекс будет использоваться / создаваться в вышеуказанном случае?Может ли индекс пересечь «НЕ регистр», как описано выше, или он может перемещаться только по положительно совпадающим записям?

1 Ответ

2 голосов
/ 24 сентября 2019

Бесполезно добавлять стандартный индекс.Индекс помогает запросу, уменьшая количество прочитанных страниц.В целом, на странице более пяти записей, поэтому можно ожидать, что каждая страница будет иметь «истинное» значение.

Вы можете использовать кластерный индекс с логическим столбцом.в качестве первого значения в индексе.Это тогда ограничило бы количество страниц приблизительно до 20% страниц.Кластерные индексы накладываются на insert и update (на кластеризованные столбцы).Стоит ли брать на себя эти накладные расходы, зависит от вашего общего применения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...