Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


 оп≥юванн€ таблиц≥ в ≥ншу базу даних




 оп≥юванн€ таблиц≥ в ≥ншу базу даних виконуЇтьс€ так само, €к ≥ коп≥юванн€ усередин≥ бази даних. “ака необх≥дн≥сть виникаЇ при використанн≥ одн≥Їњ ≥ т≥Їњ ж таблиц≥ багатьма системами або при створенн≥ резервних коп≥й важливих таблиць. ѕри коп≥юванн≥ таблиць в ≥ншу базу даних зв'€зку м≥ж таблиц€ми не коп≥юютьс€ - Access коп≥юЇ т≥льки структуру таблиц≥ ≥ дан≥.

»ндекс (англ. index) Ч объект базы данных, создаваемый с целью повышени€ производительности поиска данных. “аблицы в базе данных могут иметь большое количество строк, которые хран€тс€ в произвольном пор€дке, и их поиск по заданному критерию путем последовательного просмотра таблицы строка за строкой может занимать много времени. »ндекс формируетс€ из значений одного или нескольких столбцов таблицы и указателей на соответствующие строки таблицы и, таким образом, позвол€ет искать строки, удовлетвор€ющие критерию поиска. ”скорение работы с использованием индексов достигаетс€ в первую очередь за счЄт того, что индекс имеет структуру, оптимизированную под поиск Ч например, сбалансированного дерева.

 

Ќекоторые —”Ѕƒ расшир€ют возможности индексов введением возможности создани€ индексов по столбцам представлений[1] или индексов по выражени€м.[2] Ќапример, индекс может быть создан по выражению upper(last_name) и соответственно будет хранить ссылки, ключом к которым будет значение пол€ last_name в верхнем регистре.  роме того, индексы могут быть объ€влены как уникальные и как не уникальные. ”никальный индекс реализует ограничение целостности на таблице, исключа€ возможность вставки повтор€ющихс€ значений.—одержание [убрать]

1 јрхитектура

2 ѕоследовательность столбцов в составном индексе

3 ѕроизводительность

4 ќграничени€

5 –едкий индекс

6 ѕримечани€

 

[править]

јрхитектура

 

—уществует два типа индексов: кластерные и некластерные. ѕри наличии кластерного индекса строки таблицы упор€дочены по значению ключа этого индекса. ≈сли в таблице нет кластерного индекса, таблица называетс€ кучей[3]. Ќекластерный индекс, созданный дл€ такой таблицы, содержит только указатели на записи таблицы.  ластерный индекс может быть только одним дл€ каждой таблицы, но кажда€ таблица может иметь несколько различных некластерных индексов, каждый из которых определ€ет свой собственный пор€док следовани€ записей.

 

»ндексы могут быть реализованы различными структурами. Ќаиболее частоупотребимы B*-деревь€, B+-деревь€, B-деревь€ и хеши.

ѕоследовательность столбцов в составном индексе

 

ѕоследовательность, в которой столбцы представлены в составном индексе, достаточно важна. ƒело в том, что получить набор данных по запросу, затрагивающему только первый из проиндексированных столбцов, можно. ќднако в большинстве —”Ѕƒ невозможно или неэффективно получение данных только по второму и далее проиндексированным столбцам (без ограничений на первый столбец).

 

Ќапример, представим себе телефонный справочник, отсортированный вначале по городу, затем по фамилии, и затем по имени. ≈сли вы знаете город, вы можете легко найти все телефоны этого города. ќднако в таком справочнике будет весьма трудоЄмко найти все телефоны, записанные на определЄнную фамилию Ч дл€ этого необходимо посмотреть в секцию каждого города и поискать там нужную фамилию. Ќекоторые —”Ѕƒ выполн€ют эту работу, остальные же просто не используют такой индекс.

ѕроизводительность

 

ƒл€ оптимальной производительности запросов индексы обычно создаютс€ на тех столбцах таблицы, которые часто используютс€ в запросах. ƒл€ одной таблицы может быть создано несколько индексов. ќднако увеличение числа индексов замедл€ет операции добавлени€, обновлени€, удалени€ строк таблицы, поскольку при этом приходитс€ обновл€ть сами индексы.  роме того, индексы занимают дополнительный объем пам€ти, поэтому перед созданием индекса следует убедитьс€, что планируемый выигрыш в производительности запросов превысит дополнительную затрату ресурсов компьютера на сопровождение индекса.

[править]

ќграничени€

 

»ндексы полезны дл€ многих приложений, однако на их использование накладываютс€ ограничени€. ¬озьмЄм такой запрос SQL: SELECT first_name FROM people WHERE last_name = '‘ранкенштейн';. ƒл€ выполнени€ такого запроса без индекса —”Ѕƒ должна проверить поле last_name в каждой строке таблицы (этот механизм известен как Ђполный переборї или Ђполный скан таблицыї, в плане может отображатьс€ словом NATURAL). ѕри использовании индекса —”Ѕƒ просто проходит по B-дереву, пока не найдЄт запись Ђ‘ранкенштейнї. “акой проход требует гораздо меньше ресурсов, чем полный перебор таблицы.

 

“еперь возьмЄм такой запрос: SELECT email_address FROM customers WHERE email_address LIKE '%@yahoo.com';. Ётот запрос должен нам найти всех клиентов, у которых е-мейл заканчиваетс€ на @yahoo.com, однако даже если по столбцу email_address есть индекс, —”Ѕƒ всЄ равно будет использовать полный перебор таблицы. Ёто св€зано с тем, что индексы стро€тс€ в предположении, что слова/символы идут слева направо. »спользование символа подстановки в начале услови€ поиска исключает дл€ —”Ѕƒ возможность использовани€ поиска по B-дереву. Ёта проблема может быть решена созданием дополнительного индекса по выражению reverse(email_address) и формированием запроса вида: select email_address from customers where reverse(email_address) like reverse('%@yahoo.com');. ¬ данном случае символ подстановки окажетс€ в самой правой позиции (moc.oohay@%), что не исключает использование индекса по reverse(email_address).

 

–едкий индекс

 

–едкий индекс (англ. sparse index) в базах данных Ч это файл с последовательностью пар ключей и указателей.[4]  аждый ключ в редком индексе, в отличие от плотного индекса, ассоциируетс€ с определЄнным указателем на блок в сортированном файле данных. »де€ использовани€ индексов пришла оттого что современные базы данных слишком массивны и не помещаютс€ в основную пам€ть. ћы обычно делим данные на блоки и размещаем данные в пам€ти поблочно. ќднако поиск записи в Ѕƒ может зан€ть много времени. — другой стороны, файл индексов или блок индексов намного меньше блока данных и может поместитьс€ в буфере основной пам€ти что увеличивает скорость поиска записи. ѕоскольку ключи отсортированы, можно воспользоватьс€ бинарным поиском. ¬ кластерных индексах с дублированными ключами редкий индекс указывает на наименьший ключ в каждом блоке.

 

 





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-11-05; ћы поможем в написании ваших работ!; просмотров: 522 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

Ћюди избавились бы от половины своих непри€тностей, если бы договорились о значении слов. © –ене ƒекарт
==> читать все изречени€...

2263 - | 2066 -


© 2015-2024 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.009 с.