Учебно-практическое пособие москва 2017 ббк



Pdf көрінісі
бет183/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   179   180   181   182   183   184   185   186   ...   243
Байланысты:
Язык SQL. Базовый курс

8.1 Общая информация
Строки в таблицах хранятся в неупорядоченном виде. При выполнении операций вы-
борки, обновления и удаления СУБД должна отыскать нужные строки. Для ускорения
этого поиска и создается индекс. В принципе он организован таким образом: на ос-
нове данных, содержащихся в конкретной строке таблицы, формируется значение
элемента (записи) индекса, соответствующего этой строке. Для поддержания соот-
ветствия между элементом индекса и строкой таблицы в каждый элемент помеща-
ется указатель на строку. Индекс является упорядоченной структурой. Элементы (за-
писи) в нем хранятся в отсортированном виде, что значительно ускоряет поиск дан-
ных в индексе. После отыскания в нем требуемой записи СУБД переходит к соответ-
ствующей строке таблицы по прямой ссылке. Записи индекса могут формироваться
на основе значений одного или нескольких полей соответствующих строк таблицы.
Значения этих полей могут комбинироваться и преобразовываться различными спо-
собами. Все это определяет разработчик базы данных при создании индекса.
При выполнении поиска конкретных строк в таблице специальная подсистема СУБД,
называемая планировщиком, проверяет, имеется ли для этой таблицы индекс, со-
зданный на основе тех же столбцов, что указаны, например, в условии предложения
WHERE. Если такой индекс существует, то планировщик оценивает целесообразность
его использования в данном конкретном случае. Если его использование целесооб-
разно, то сначала выполняется поиск необходимых значений в индексе, а затем, если
такие значения в нем найдены, производится обращение к таблице с использовани-
ем указателей, которые хранятся в записях индекса. Таким образом, полный перебор
строк в таблице может быть заменен поиском в упорядоченном индексе и переходом
к строке таблицы по прямому указателю (ссылке).
Следует учитывать, что индексы требуют и некоторых накладных расходов на их со-
здание и поддержание в актуальном состоянии при выполнении обновлений данных
в таблицах. Поэтому использовать индексы нужно осмотрительно.
Когда вы создавали таблицы, то видели, что, как правило, для них предусматрива-
лось создание первичного ключа — PRIMARY KEY. В таких случаях СУБД сама создает
индекс, который позволяет поддерживать реализацию этого ограничения. Ведь при
наличии первичного ключа не допускается появление в таблице строк с одинаковы-
ми его значениями. Индекс позволяет выполнять проверку на дублирование очень
быстро.
188


Для некоторых таблиц, например, «Посадочные талоны» (boarding_passes), было
предусмотрено и ограничение уникальности UNIQUE. В этих случаях СУБД также ав-
томатически создает индекс, который используется для обеспечения уникальности
значений.
Для того чтобы увидеть индексы, созданные для данной таблицы, нужно воспользо-
ваться командой утилиты psql:


Достарыңызбен бөлісу:
1   ...   179   180   181   182   183   184   185   186   ...   243




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет