Вверх ↑
Ответов: 1891
Рейтинг: 110
#1: 2007-09-04 01:58:30 ЛС | профиль | цитата
nesco, писал(а):
только концепция не совсем понятна была с одинаковыми значениями


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

Например не следует создавать индексы по столбцу status

FAMSTATUS
Петров Женат
ИвановРазведен
Сидоров Женат
Иволгин Разведен
Сидоренко Холост
Кличко Женат
МитинЖенат
......
Яковлев Холост


Использование индекса, построенного на данных столбца STATUS
для классификации, не является оправданным. Например, следующим запрос
SELECT * FROM tbl WHERE STATUS = 'Женат'
вызывает непрерывный поток обращений от таблицы к индексу и наоборот. Из-за того, что условие WHERE STATUS = 'Женат' возвращает большой объем данных, серверу базы данных придется постоянно читать сначала данные из индекса, затем соответствующую строку из таблицы и т. д. В данном случае гораздо более эффективным было бы простое сканирование всех данных таблицы, поскольку значительная ее часть все равно должна быть прочитана.
карма: 0
%time%
0