Junior
Jakie rodzaje indeksów istnieją w bazach danych?
sobes.tech AI
Odpowiedź od AI
Główne typy indeksów w bazach danych:
-
B-drzewo (B+drzewo):
- Najbardziej powszechny typ.
- Odpowiedni dla szerokiego zakresu operacji: wyszukiwanie zakresowe, dokładne dopasowanie, sortowanie.
- Domyślnie używany w wielu systemach zarządzania bazami danych (MySQL, PostgreSQL, Oracle).
-
Indeksy haszowe:
- Oparte na tablicy haszującej.
- Bardzo szybkie dla wyszukiwań dokładnych (
=). - Nie nadają się do wyszukiwań zakresowych (
BETWEEN,<,>), sortowania (ORDER BY) czy wyszukiwania wzorców (LIKE).
-
Indeksy pełnotekstowe:
- Przeznaczone do wyszukiwania tekstu w polach tekstowych (BLOB, TEXT).
- Pozwalają na wyszukiwanie słów lub fraz, uwzględnianie synonimów i analizę morfologiczną.
- Przykłady:
MATCH...AGAINSTw MySQL/MariaDB,tsvector/tsqueryw PostgreSQL.
-
Indeksy przestrzenne (R-drzewo):
- Używane do indeksowania danych geograficznych lub przestrzennych.
- Pozwalają na efektywne znajdowanie obiektów w określonym obszarze lub granicach.
-
Indeksy bitmapowe:
- Używane w niektórych systemach (np. Oracle, PostgreSQL).
- Odpowiednie dla pól o niskiej kardynalności (mała liczba unikalnych wartości, np. płeć, status: aktywny/nieaktywny).
- Mogą być bardzo wydajne dla złożonych zapytań z operacjami
ANDiOR.
-
Indeks klastrowy:
- Wpływa na fizyczny porządek przechowywania danych wierszy tabeli.
- W tabeli może być tylko jeden indeks klastrowy.
- Często używany dla klucza głównego.
-
Indeks nieklastrowy:
- Nie określa fizycznego porządku wierszy.
- Zawiera wskaźniki na fizyczne położenie danych.
- Tabela może mieć wiele indeksów nieklastrowych.
-
Indeks pokrywający:
- Indeks zawierający wszystkie kolumny potrzebne do wykonania zapytania, w tym kolumny w
SELECT, warunki wWHEREiORDER BY. - Pozwala systemowi zarządzania bazą danych na pominięcie odczytu danych z tabeli, co przyspiesza zapytanie.
- Indeks zawierający wszystkie kolumny potrzebne do wykonania zapytania, w tym kolumny w
-
Indeks funkcjonalny (według wyrażenia):
- Indeks oparty na wyniku funkcji lub wyrażenia na jednej lub wielu kolumnach.
- Pozwala na indeksowanie wartości obliczanych.
Przy wyborze typu indeksu brane są pod uwagę typ danych, częstotliwość i charakter zapytań (wyszukiwanie po dokładnej wartości, zakresie, sortowaniu, pełnotekstowe wyszukiwanie itp.) oraz kardynalność kolumny.