Использование индексации для быстрого доступа к данным
Операции поиска-выборки (select) данных из таблиц по значениям их полей могут быть существенно ускорены путем использования индексации данных. Индекс содержит упорядоченный (в алфавитном или числовом порядке) список содержимого столбцов или группы столбцов в индексируемой таблице с идентификаторами этих строк (rowid). Для пользователей индексирование таблицы по тем или иным столбцам представляет собой способ логическогоупорядочения значений индексированных столбцов, позволяющего, в отличие от последовательного перебора строк, существенно повысить скорость доступа к конкретным строкам таблицы при выборках, использующих значения этих столбцов. Индексация позволяет находить содержащий индексированную строку блок данных, выполняя небольшое число обращений к внешнему устройству.
При использовании индексации следует, иметь в виду, что управление индексом существенно замедляет время выполнения операций, связанных с обновлением данных (таких, как insertи delete),так как эти операции требуют перестройки индексов.
Индексы можно создавать как по одному, так и по множеству полей. Если указано более одного поля для создания единственного индекса, данные упорядочиваются по значениям первого поля, по которому осуществляется индексирование. Внутри получившейся группы осуществляется упорядочение по значениям второго поля, для получившихся в результате групп осуществляется упорядочение по значениям третьего поля и т.д.
Синтаксис команды создания индекса имеет следующий вид:
28/11/2011
create index <имя индекса> on <имя таблицы> (<имя столбца> [,<имя столбца>]);
При этом таблица должна быть уже создана и содержать столбцы, имена которых указаны в команде создания индекса. Имя индекса, определенное в команде, должно быть уникальным в базе данных. Будучи однажды созданным, индекс является невидимым для пользователя, все операции с ним осуществляет СУБД.
Пример
Если таблица exam_marks часто используется для поиска оценки конкретного студента по значению поля student_id, то следует создать индекс по этому полю.
CREATE INDEXSTUDENT_ID_1 ON EXAM_MARKS (STUDENT_ID);
Для удаления индекса (при этом обязательно требуется знать его имя) используется команда DROP INDEX,имеющая следующий синтаксис:
drop index <имя индекса>;
Удаление индекса не изменяет содержимого поля или полей, индекс которых удаляется.
Дата добавления: 2015-08-26; просмотров: 571;