ВУЗ:
Составители:
Рубрика:
– 45 –
комое значение.
Наличие или отсутствие индекса совершенно незаметно для пользователя,
обращающегося к таблице. Рассмотрим, например, такую инструкцию SELECT:
Найти количество и цену изделия
2А34.
SELECTCOUNT,PRICE
FROMTOVARY
WHEREDESCRIPTION=`2А34`
В инструкции ничего не говорится о том, имеется ли индекс для столбца
DESCRIPTION или нет, и СУБД выполнить запрос в любом случае.
Если бы индекса для столбца
DESCRIPTION не существовало, то СУБД была
бы вынуждена выполнять запрос путем последовательного «сканирования»
таблицы
TOVARY, строка за строкой, просматривая в каждой строке столбец
DESCRIPTION. Для получения гарантии того, что она нашла все строки, удовле-
творяющие условию отбора, СУБД должна просматривать каждую строку таб-
лицы. Если таблица имеет тысячи и миллионы строк, то ее просмотр может за-
нять минуты и даже часы.
Если для столбца
DESCRIPTION имеется индекс, СУБД находит требуемые
данные с гораздо меньшими усилиями. Она просматривает индекс, чтобы найти
требуемое значение (изделие
2А34), а затем с помощью указателя находит тре-
буемую строку (строки) таблицы. Поиск в индексе осуществляется достаточно
быстро, так как индекс отсортирован и его строки очень короткие. Переход от
индекса к строке (строкам) также происходит очень быстро, поскольку в индек-
се содержится информация о том, где на диске располагается эта строка.
Как видно из этого примера, индекс имеет то преимущество, что он в ог-
ромной степени ускоряет выполнение инструкций
SQL с условиями отбора,
имеющими ссылки на индексный столбец (столбцы). К недостаткам индекса
относится то, что, во-первых, он занимает на диске дополнительное место, и,
во-вторых, индекс необходимо обновлять каждый раз, когда в таблицу добавля-
ется строка или обновляется индексный столбец таблицы. Это требует допол-
нительных затрат на выполнение инструкций
INSERT и UPDATE, которые обра-
щаются к данной таблице.
В общем, полезно создавать индекс лишь для тех столбцов, которые часто
используются в условиях отбора. Индексы удобны также в тех случаях, когда
инструкции
SELECT обращаются к таблице гораздо чаще, чем инструкции INSERT
и
UPDATE. СУБД всегда создает индекс для первичного ключа таблицы, так как
ожидает, что доступ к таблице чаще всего будет осуществляться через первич-
ный ключ.
2.3. ЦЕЛОСТНОСТЬ ДАННЫХ
Термин целостность относится к правильности и полноте информации, со-
держащейся в базе данных. При изменении содержимого базы данных с помо-
щью инструкций
INSERT, DELETE или UPDATE может произойти нарушение цело-
стности содержащихся в ней данных:
Страницы
- « первая
- ‹ предыдущая
- …
- 43
- 44
- 45
- 46
- 47
- …
- следующая ›
- последняя »