Показать сообщение отдельно
Старый 19.12.2011, 22:42   #6  
Kabardian is offline
Kabardian
Талантливый разгвоздяй
Аватар для Kabardian
 
424 / 338 (12) ++++++
Регистрация: 14.12.2008
Адрес: Москва
Записей в блоге: 14
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Для ответа на сей вопрос - нужно понять - что нам даст индекс по этому полю.
Теоретически, при сортировке по индексу (в порядке полей, указанных в индексе) - мы можем уменьшить количество записей, внутри которых осуществляется поиск.
Т.е. написав where cancelled = NoYes::No мы отсекаем кучу записей... Но и куча остается. Оставшееся количество все равно велико (нам индекс радикально не помог), а значит оптимизатор будет искать иные индексы для поиска.
Спасибо за мысли вслух, я в общем это примерно так себе и представлял, но ваше подрбное разъяснение натолкнуло на другие мысли. Не силен в SQL может в нем, есть способ поднять статистику поиска по определенному полю таблицы? Сейчас погуглю.

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

Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Маленькое добавление. Это утверждение не означает, что нужно кидаться и создавать индексы на все возможные выборки. Ибо оптимизатор может и "запутаться".
Не стал бы без необходимости кидаться создавать индексы, т. к. они расходуют место на диске и иногда могут превышать размер индексируемых данных.