Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Новое на сайте
Топовые новости

Индекс представляет собой еще одну физическую структуру базы данных

Индекс представляет собой еще одну физическую структуру базы данных

Индекс представляет собой еще одну физическую структуру базы данных, которая также занимает пространство на диске, как и таблица, однако СУБД используется за кулисами для повышения производительности запросов. Пользователи, имеющие достаточные привилегии, могут создавать и удалять индексы, в то же время обычные выражения и инструкции SQL никогда к ним явно не обращаются. Для примера предположим, что созданная ранее таблица PHONE бала наполнена записями, и выполняется следующий запрос. В первую очередь СУБД проверяет, существует ли индекс по столбцу условия (PHONE_CUS — TID_FN). Если это так, для определения физического местоположения нужных строк используется индекс (будут найдены строки, где PHONE_CUSTID_FN=152). Если же такого индекса не существует, в поиске строк с соответствующими значениями выполняется сканирование всей таблицы. Индекс базы данных в чем-то сходен с предметным указателем в конце книги. В индексе хранятся указатели на физическое местоположение строк на диске, так же, как в предметном указателе — номера страниц, где упоминаются соответствующие термины. С другой стороны, индекс можно сравнить с таблицей базы данных, содержащей несколько столбцов: один для физического адреса, а остальные для индексируемых столбцов таблицы. Другими словами, индекс сообщает СУБД, где искать на диске конкретную строку (или группу строк) таблицы (рис. 4.4). Однако учтите, что в настоящем разделе приведена только аналогия, это не описание работы индекса. При некотором упрощении реального положения вещей можно сказать, что столбец таблицы и индекс имеют один и тот же набор значений. Основное отличие состоит в том, что в индексе эти значения упорядочены, поэтому поиск в нем нужной величины занимает значительно меньше времени.