Indeksowanie poprawia wydajność bazy danych, minimalizując liczbę wizyt na dysku wymaganych do wypełnienia zapytania. Jest to technika struktury danych używana do lokalizowania i szybkiego dostępu do danych w bazach danych. Do generowania indeksów wykorzystywanych jest kilka pól bazy danych. Klucz główny lub klucz kandydujący tabeli jest powielany w pierwszej kolumnie, która jest kluczem wyszukiwania. Aby przyspieszyć wyszukiwanie danych, wartości są również przechowywane w kolejności posortowanej. Należy podkreślić, że sortowanie danych nie jest wymagane. Druga kolumna to Odniesienie do danych lub wskaźnik, które zawiera zestaw wskaźników przechowujących adres bloku dysku, w którym można znaleźć tę konkretną wartość klucza.
Struktura indeksu w bazie danych
Atrybuty indeksowania
- Rodzaje dostępu: Odnosi się to do rodzaju dostępu, takiego jak wyszukiwanie na podstawie wartości, dostęp do zakresu itp.
- Czas dostępu: Odnosi się do czasu potrzebnego na znalezienie określonego elementu danych lub zestawu elementów.
- Czas wstawienia: Odnosi się do czasu potrzebnego na znalezienie odpowiedniego miejsca i wstawienie nowych danych.
- Czas usunięcia: Czas potrzebny na znalezienie elementu i usunięcie go oraz aktualizację struktury indeksu.
- Przestrzeń nad głową: Odnosi się do dodatkowej przestrzeni wymaganej przez indeks.
Struktura indeksu w bazie danych
ciąg.format
Ogólnie rzecz biorąc, istnieją dwa typy mechanizmów organizacji plików, po których następują metody indeksowania służące do przechowywania danych:
Organizacja plików sekwencyjnych lub uporządkowany plik indeksowy
W tym przypadku indeksy opierają się na posortowanym porządku wartości. Są to na ogół szybkie i bardziej tradycyjne typy mechanizmów przechowywania. Te uporządkowane lub sekwencyjne organizacje plików mogą przechowywać dane w formacie gęstym lub rzadkim.
- Gęsty indeks
- Dla każdej wartości klucza wyszukiwania w pliku danych istnieje rekord indeksu.
- Rekord ten zawiera klucz wyszukiwania, a także odniesienie do pierwszego rekordu danych z tą wartością klucza wyszukiwania.
Gęsty indeks
- Indeks rzadki
- Rekord indeksu pojawia się tylko dla kilku pozycji w pliku danych. Każdy element wskazuje na blok, jak pokazano.
- Aby zlokalizować rekord, znajdujemy rekord indeksu z największą wartością klucza wyszukiwania mniejszą lub równą wartości klucza wyszukiwania, której szukamy.
- Zaczynamy od rekordu wskazanego przez rekord indeksu i postępujemy zgodnie ze wskaźnikami w pliku (czyli sekwencyjnie), aż znajdziemy żądany rekord.
- Liczba wymaganych dostępów=log₂(n)+1, (tutaj n=liczba bloków uzyskanych przez plik indeksowy)
Indeks rzadki
Organizacja pliku skrótu
Indeksy opierają się na wartościach równomiernie rozłożonych w różnych przedziałach. Pojemniki, do których przypisana jest wartość, są określane przez funkcję zwaną funkcją skrótu. Istnieją przede wszystkim trzy metody indeksowania:
porównywalny interfejs Java
- Indeksowanie klastrowe : Kiedy w tym samym pliku przechowywanych jest więcej niż dwa rekordy, ten typ przechowywania nazywany jest indeksowaniem klastrów. Stosując indeksowanie klastrowe możemy obniżyć koszty wyszukiwania, ponieważ wiele rekordów dotyczących tej samej rzeczy jest przechowywanych w jednym miejscu, a także daje to możliwość częstego łączenia więcej niż dwóch tabel (rekordów).
Indeks grupowania jest zdefiniowany w uporządkowanym pliku danych. Plik danych jest uporządkowany według pola niekluczowego. W niektórych przypadkach indeks jest tworzony na kolumnach innych niż klucz podstawowy, które mogą nie być unikalne dla każdego rekordu. W takich przypadkach, aby szybciej zidentyfikować rekordy, zgrupujemy dwie lub więcej kolumn, aby uzyskać unikalne wartości i utworzyć z nich indeks. Metoda ta nazywana jest indeksem klastrowym. Zasadniczo rekordy o podobnych właściwościach są grupowane razem i tworzone są indeksy dla tych grup.
Na przykład studenci studiujący w każdym semestrze są grupowani razem. Kategoryzowani są studenci pierwszego semestru, studenci drugiego semestru, studenci trzeciego semestru i tak dalej.
Indeksowanie klastrowe
- Indeksowanie podstawowe: Jest to rodzaj indeksowania klastrowego, w którym dane są sortowane według klucza wyszukiwania, a do utworzenia indeksu używany jest klucz podstawowy tabeli bazy danych. Jest to domyślny format indeksowania, w którym wywołuje sekwencyjna organizacja plików . Ponieważ klucze podstawowe są unikalne i są przechowywane w sposób posortowany, wydajność operacji wyszukiwania jest dość wydajna.
- Indeksowanie nieklastrowe lub wtórne : Indeks nieklastrowany po prostu mówi nam, gdzie znajdują się dane, tj. daje nam listę wirtualnych wskaźników lub odniesień do lokalizacji, w której faktycznie przechowywane są dane. Dane nie są fizycznie przechowywane w kolejności indeksu. Zamiast tego dane są obecne w węzłach liści. Dla np. stronę ze spisem treści książki. Każdy wpis podaje nam numer strony lub lokalizację przechowywanych informacji. Rzeczywiste dane tutaj (informacje na każdej stronie książki) nie są uporządkowane, ale mamy uporządkowane odniesienie (strona ze spisem treści) do tego, gdzie faktycznie znajdują się punkty danych. W indeksie nieklastrowym możemy mieć tylko gęste uporządkowanie, ponieważ rzadkie uporządkowanie nie jest możliwe, ponieważ dane nie są odpowiednio zorganizowane fizycznie.
Wymaga to więcej czasu w porównaniu z indeksem klastrowym, ponieważ ekstrakcja danych poprzez dalsze podążanie za wskaźnikiem wymaga dodatkowej pracy. W przypadku indeksu klastrowego dane znajdują się bezpośrednio przed indeksem.

Indeksowanie nieklastrowe
- Indeksowanie wielopoziomowe: Wraz ze wzrostem wielkości bazy danych rosną także indeksy. Ponieważ indeks jest przechowywany w pamięci głównej, rozmiar indeksu jednopoziomowego może stać się zbyt duży, aby można go było przechowywać przy wielokrotnym dostępie do dysku. Indeksowanie wielopoziomowe dzieli główny blok na różne mniejsze bloki, dzięki czemu można je przechowywać w jednym bloku. Bloki zewnętrzne są podzielone na bloki wewnętrzne, które z kolei wskazują na bloki danych. Można to łatwo zapisać w pamięci głównej przy mniejszych kosztach ogólnych.
Indeksowanie wielopoziomowe
Zalety indeksowania
- Poprawiona wydajność zapytań: Indeksowanie umożliwia szybsze pobieranie danych z bazy danych. Baza danych może szybko wykrywać wiersze pasujące do określonej wartości lub zbioru wartości, generując indeks dla kolumny, minimalizując czas potrzebny na wykonanie zapytania.
- Efektywny dostęp do danych: Indeksowanie może zwiększyć efektywność dostępu do danych poprzez zmniejszenie ilości operacji we/wy dysku wymaganych do pobrania danych. Baza danych może przechowywać w pamięci strony danych często odwiedzanych kolumn, generując indeks dla tych kolumn, zmniejszając wymagania dotyczące odczytu z dysku.
- Zoptymalizowane sortowanie danych: Indeksowanie może również poprawić wydajność operacji sortowania. Tworząc indeks dla kolumn używanych do sortowania, baza danych może uniknąć sortowania całej tabeli i zamiast tego posortować tylko odpowiednie wiersze.
- Spójna wydajność danych: Indeksowanie może pomóc w zapewnieniu spójnego działania bazy danych, nawet w przypadku wzrostu ilości danych w bazie danych. Bez indeksowania wykonywanie zapytań może trwać dłużej w miarę wzrostu liczby wierszy w tabeli, podczas gdy indeksowanie utrzymuje mniej więcej stałą prędkość.
- Zapewniając, że do kolumn, które zostały zaindeksowane jako unikalne, wstawiane są tylko unikalne wartości, można również zastosować indeksowanie w celu zapewnienia integralności danych. Pozwala to uniknąć przechowywania zduplikowanych danych w bazie danych, co mogłoby prowadzić do problemów podczas wykonywania zapytań lub raportów.
Ogólnie rzecz biorąc, indeksowanie baz danych zapewnia znaczne korzyści w zakresie poprawy wydajności zapytań, wydajnego dostępu do danych, zoptymalizowanego sortowania danych, spójnej wydajności danych i wymuszonej integralności danych
Wady indeksowania
- Indeksowanie wymaga większej przestrzeni dyskowej do przechowywania struktury danych indeksu, co może zwiększyć całkowity rozmiar bazy danych.
- Zwiększone koszty utrzymania bazy danych: Indeksy muszą być utrzymywane podczas dodawania, niszczenia lub modyfikowania danych w tabeli, co może zwiększyć obciążenie związane z utrzymaniem bazy danych.
- Indeksowanie może zmniejszyć wydajność wstawiania i aktualizacji, ponieważ struktura danych indeksu musi być aktualizowana za każdym razem, gdy dane są modyfikowane.
- Wybór indeksu może być trudny: Wybór odpowiednich indeksów dla konkretnego zapytania lub aplikacji może stanowić wyzwanie i może wymagać szczegółowego zbadania danych i wzorców dostępu.
Funkcje indeksowania
- Rozwój struktur danych, takich jak Drzewa B Lub Najważniejsze kolumny do indeksowania kolumn są wybierane na podstawie częstotliwości ich używania i rodzaju zapytań, jakim są poddawane. The kardynalność , selektywność i niepowtarzalność kolumn indeksujących mogą być brane pod uwagę.
- Istnieje kilka różnych typów indeksów używanych przez bazy danych, w tym indeksy podstawowe, dodatkowe, klastrowane i nieklastrowane. W zależności od konkretnych potrzeb systemu baz danych, każda forma indeksu ma zalety i wady.
- Aby system bazy danych działał optymalnie, wymagana jest okresowa konserwacja indeksów. W zależności od zmian w danych i wzorcach użytkowania prace konserwacyjne obejmują tworzenie, aktualizowanie i usuwanie indeksów.
- Optymalizacja zapytań do baz danych polega na indeksowaniu, co jest niezbędne. Optymalizator zapytań wykorzystuje indeksy, aby wybrać najlepszą strategię wykonania dla konkretnego zapytania w oparciu o koszt dostępu do danych i selektywność kolumn indeksujących.
- Bazy danych wykorzystują szereg strategii indeksowania, w tym indeksy obejmujące, skanowanie samego indeksu i indeksy częściowe. Techniki te maksymalizują wykorzystanie indeksów dla poszczególnych typów zapytań i dostępu do danych.
- Kiedy w indeksie przechowywane są nieciągłe bloki danych, może to skutkować fragmentacją indeksu, co powoduje, że indeks jest mniej skuteczny. Regularna konserwacja indeksu, taka jak defragmentacja i reorganizacja, może się zmniejszyć podział .
Wniosek
Indeksowanie to bardzo przydatna technika, która pomaga w optymalizacji czasu wyszukiwania Baza danych zapytania. Tabela indeksowania bazy danych składa się z klucza wyszukiwania i wskaźnik . Istnieją cztery typy indeksowania: klastrowanie podstawowe, klastrowanie wtórne i indeksowanie wielowartościowe. Indeksowanie podstawowe dzieli się na dwa typy: gęste i rzadkie. Indeksowanie gęste jest stosowane, gdy tabela indeksów zawiera rekordy dla każdego klucza wyszukiwania. Indeksowanie rzadkie jest używane, gdy tabela indeksów nie używa klucza wyszukiwania dla każdego rekordu. Zastosowania indeksowania wielopoziomowego B+ Drzewo . Głównym celem indeksowania jest zapewnienie lepszej wydajności wyszukiwania danych.
Często zadawane pytania dotyczące indeksowania
P.1: Co to jest indeksowanie w bazach danych?
Odpowiedź:
krotka Java
Indeksowanie to w zasadzie technika, która pomaga skrócić czas wyszukiwania zapytania w bazie danych lub pomaga w szybszym dostępie do bazy danych.
P.2: Jakie są przykłady indeksujących baz danych?
Odpowiedź:
Typowymi przykładami indeksujących baz danych są Web of Science, DOAJ (katalog czasopism o otwartym dostępie)
Aby uzyskać więcej informacji, możesz zapoznać się z Wprowadzenie do drzewa B+ I Rodzaje kluczy w bazie danych artykuł.