Индексы

Раздел: Моделирование данных

Третий тип данных, которые хранятся в базе данных, призван улучшить ее производительность и доступность. Эти данные, называемые иногда избыточными данными (overhead data), состоят главным образом из индексов (indexes), хотя в ряде случаев используются и другие структуры данных, такие как связанные списки.
Теперь представьте, что требуется получить данные о студентах, отсортированные по полю Специальность. Опять-таки, можно извлечь эти данные из таблицы СТУДЕНТ и отсортировать, а можно создать индекс Специальность и использовать его, как показано выше.
Индексы используются не только для сортировки, но и для быстрого доступа к данным. Пусть, например, пользователю нужны сведения только о тех студентах, чьей специальностью являются информационные системы. Без индекса пришлось бы проводить поиск по всей таблице. Имея же индекс, можно найти в нем соответствующую запись и использовать ее для нахождения нужных строк в таблице. На самом деле, если количество строк невелико, как в таблице СТУДЕНТ, индексы не нужны, но представьте себе таблицу, которая содержит 10 000 или 20 000 строк. В этом случае сортировка или поиск по всей таблице работали бы слишком медленно.
Индексы удобны для сортировки и поиска, но за их использование приходится платить свою цену. Каждый раз, когда обновляется строка в таблице СТУДЕНТ,индексы также необходимо обновлять. Это не обязательно плохо — это означает только, что индексы не даются даром и поэтому должны использоваться только в тех случаях, когда это действительно оправдано.