Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Необходимость создания индексов




Логическое разделение на ключи и индексы.

Индексирование таблиц базы данных.

Индекс представляет собой структуру, позволяющую выполнять ускоренный доступ к строкам таблицы на основе значений одного или более ее столбцов. Наличие индекса может существенно повысить скорость выполнения некоторых запросов. Однако, поскольку индексы должны обновляться системой при каждом внесении изменений в их базовую таблицу, они создают дополнительную нагрузку на систему. Индексы обычно создаются с целью удовлетворения определенных критериев поиска, после того как таблица уже находилась некоторое время в работе и увеличилась в размерах.

Индекс – это структура данных, которая помогает СУБД быстрее обнаруживать отдельные записи в файле, а потому позволяет сократить время выполнения запросов пользователей.

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

В InterBase разделено понятие ключей и индексов. Это разделение, впрочем, имеет логическую окраску, то есть ценно при создании таблицы базы данных. Первичный (PRIMARY KEY) и внешний (FOREIGN KEY) ключи строятся для обеспечения ссылочной целостности реляционно-связанных таблиц в базе данных. Первичный ключ, помимо этого, выполняет функции поддержания уникальности своих значений, что обусловлено его основным назначением – однозначно характеризовать запись в таблице базы данных. Для таких же целей может использоваться и просто уникальный ключ (UNIQUE).

"Обычные" индексы, создаваемые оператором CREATE INDEX, в отличие от ключей, служат для обеспечения сортировок и оптимизации доступа к данным.

С физической точки зрения, то, что логически при создании таблиц подразделялось на ключи и индексы, преобразуется в индексы. Однако, если "обычным" индексам можно присвоить имя, то физические индексы, реализованные на основе определений ключей, строятся и именуются системой автоматически.

Индексы необходимо создавать в случае, когда по столбцу или группе столбцов:

· часто производится поиск в базе данных (столбец или группа столбцов часто перечисляются в предложении WHERE оператора SELECT);

· часто строятся объединения таблиц;

· часто производится сортировка в наборе данных, возвращаемых в качестве результатов запросов к базе данных (то есть столбец или столбцы часто используются в предложении ORDER BY оператора SELECT).

Не рекомендуется строить индексы по столбцам или группам столбцов, которые:

· редко используются для поиска, объединения и сортировки результатов запросов;

· часто меняют значение, что приводит к необходимости часто обновлять индекс и способно существенно замедлить скорость работы с базой данных;

· содержат небольшое число вариантов значения.

В случае, когда при выполнении запросов используется сортировка по одним и тем же столбцам, необходимо помнить следующее: создание единого индекса по этим полям способно ускорить выполнение запросов. Однако:

· при использовании в некоторых запросах не всех столбцов из этого индекса следует использовать только непрерывную последовательность столбцов; например, если индекс построен по столбцам Р1, Р2, РЗ, Р4, то в некотором операторе SELECT допустимо указать SELECT … ORDER BY P1, P2, P3 но никак не SELECT... ORDER BY P1, P2, P4 или SELECT... ORDER BY P1, P3, P4, поскольку в последних двух случаях индекс, построенный по столбцам Р1, Р2, РЗ, Р4, не будет использован;

· последовательность указания в предложении ORDER BY столбцов является важной; так, для индекса, построенного по столбцам Р1, Р2, РЗ, Р4, указание SELECT... ORDER BY P2, P1, P3 не приведет к использованию указанного индекса для сортировки результирующего набора данных;

· при частом использовании в условной части WHERE оператора SELECT нескольких столбцов, связанных между собой операцией "или" (OR): SELECT... WHERE P1 = значение1 OR P2 = значение2 OR РЗ =... вместо индекса по столбцам PI, P2, РЗ лучше создать несколько индексов, построенных по каждому из этих полей, поскольку в противном случае будет осуществлен последовательный просмотр всей таблицы; это неудивительно, поскольку индексно-последовательный доступ для индекса по столбцам Р1, Р2, РЗ может быть осуществлен только для столбца Р1; значения столбцов Р2 и РЗ в этом индексе спонтанно разбросаны по индексу.




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 271; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.