Индексы базы данных

Одним из приемов ускорения поиска информации в системах управления базами данных является расположение информации в упорядоченном виде. Например, расположение электродвигателей в таблице по возрастанию мощности или другого параметра, размещение фамилий сотрудников в алфавитном порядке и т. п. Такое упорядочение называют сортировкой. Для выполнения действий по упорядочению информации требуется дополнительное время и память компьютера. Если информация в базе данных постоянно изменяется (что–то удаляется, что–то добавляется), то это требует частой ее сортировки и дополнительной потери времени. В таких случаях предпочитают использовать несортированную таблицу данных. Но тогда возрастает время поиска информации. Для достижения компромисса в этой ситуации вводят дополнительную таблицу, называемую индексами базы данных. В эту таблицу помещаются только первичные ключи из основной таблицы и поле, по которому совершается сортировка. Такая таблица с ключами и полем атрибута с упорядоченными значениями представляет собой индекс для основной таблицы базы данных. Для одной и той же таблицы данных можно создать несколько индексов. Например, для таблицы, содержащей информацию о параметрах электродвигателей, можно создать один индекс по мощности, другой индекс по напряжению, а третий по частоте вращения и др. Это удобно. Если необходимо найти электродвигатель с необходимой мощностью, то в этом случае удобно использовать индекс по мощности, так как поле мощности в этом индексе сортировано, что обеспечит быстрый поиск. При выборе электродвигателя с требуемой частотой вращения удобно использовать индекс по частоте вращения. Индексные таблицы значительно меньше основных таблиц и на их сортировку требуется существенно меньше времени. Этим и определяется полезность их применения.

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

В общем случае создание индексов может осуществляться по значениям нескольких полей. Такой индекс называют составным. Это имеет смысл, если в отдельных полях размещаются, например, фамилия, имя и отчество сотрудника. При создании индекса по полю, содержащему фамилии, может возникнуть ситуация, когда при наличии нескольких одинаковых фамилий последующие поля (имя и отчество) будут подсоединены к выбранной фамилии в произвольном порядке. При наличии составного индекса по фамилии, имени и отчеству такой вариант будет исключен.