Цитата:
Сообщение от
sukhanchik
Для ответа на сей вопрос - нужно понять - что нам даст индекс по этому полю.
Теоретически, при сортировке по индексу (в порядке полей, указанных в индексе) - мы можем уменьшить количество записей, внутри которых осуществляется поиск.
Т.е. написав where cancelled = NoYes::No мы отсекаем кучу записей... Но и куча остается. Оставшееся количество все равно велико (нам индекс радикально не помог), а значит оптимизатор будет искать иные индексы для поиска.
Спасибо за мысли вслух, я в общем это примерно так себе и представлял, но ваше подрбное разъяснение натолкнуло на другие мысли. Не силен в SQL может в нем, есть способ поднять статистику поиска по определенному полю таблицы? Сейчас погуглю.
Кроме того, я пока еще не весь код просмотрел и нашел хотя бы один более или менее часто используемый запрос, где поиск не сужался бы по полям, по которым уже существует индекс.
Цитата:
Сообщение от
sukhanchik
Маленькое добавление. Это утверждение не означает, что нужно кидаться и создавать индексы на все возможные выборки. Ибо оптимизатор может и "запутаться".
Не стал бы без необходимости кидаться создавать индексы, т. к. они расходуют место на диске и иногда могут превышать размер индексируемых данных.