Sobes.tech
Junior

Jakie rodzaje indeksów istnieją w bazach danych?

sobes.tech AI

Odpowiedź od AI

Główne typy indeksów w bazach danych:

  1. 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).
  2. 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).
  3. 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...AGAINST w MySQL/MariaDB, tsvector/tsquery w PostgreSQL.
  4. Indeksy przestrzenne (R-drzewo):

    • Używane do indeksowania danych geograficznych lub przestrzennych.
    • Pozwalają na efektywne znajdowanie obiektów w określonym obszarze lub granicach.
  5. 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 AND i OR.
  6. 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.
  7. 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.
  8. Indeks pokrywający:

    • Indeks zawierający wszystkie kolumny potrzebne do wykonania zapytania, w tym kolumny w SELECT, warunki w WHERE i ORDER BY.
    • Pozwala systemowi zarządzania bazą danych na pominięcie odczytu danych z tabeli, co przyspiesza zapytanie.
  9. 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.