EN - FR - DE - ES - IT - PT -

LexiconDream

📇 Indeks

Struktura danych przyspieszająca pobieranie rekordów bazy danych.

Indeks

Indeks przyspiesza wyszukiwanie danych. Bez niego baza danych skanuje każdy wiersz w poszukiwaniu pasujących rekordów. Z indeksem przechodzi bezpośrednio do odpowiednich wierszy. Indeks to osobna struktura danych, która mapuje wartości na lokalizacje. Indeks książki działa w ten sam sposób. Wyszukujesz termin i znajdujesz numer strony. Nie czytasz każdej strony, aby go znaleźć. Baza danych robi to samo.

Indeksy mają swoją cenę. Zajmują miejsce. Spowalniają wstawianie, aktualizowanie i usuwanie, ponieważ indeks również musi być aktualizowany. Każdy zapis staje się droższy. Korzyścią jest szybszy odczyt. W przypadku obciążeń o dużej liczbie odczytów indeksy są niezbędne. W przypadku obciążeń o dużej liczbie zapisów zbyt wiele indeksów obniża wydajność. Wybór kolumn do indeksowania wymaga zrozumienia wzorców zapytań. Kolumny używane w klauzulach WHERE, warunkach JOIN i klauzulach ORDER BY są dobrymi kandydatami. Kolumny o niskiej kardynalności, takie jak flaga logiczna, są słabymi kandydatami, ponieważ indeks nie zawęża znacznie zakresu wyszukiwania. Indeksy złożone obejmują wiele kolumn i mogą obsługiwać zapytania filtrujące według kilku pól. Kolejność kolumn w indeksie złożonym ma znaczenie. Baza danych może używać indeksu złożonego do zapytań dotyczących kolumny wiodącej, ale nie tylko kolumn końcowych. Projekt indeksu jest kompromisem. Celem jest przyspieszenie zapytań, które mają znaczenie, bez spowalniania zapisu bardziej niż to konieczne.

Typy indeksów

Indeks to skrót. Zamienia prędkość zapisu i przechowywania na prędkość odczytu. Używaj go tam, gdzie odczyty są najważniejsze.

Comments (3)

  1. Derek S.
    Database indexes are a tradeoff. They speed up reads but slow down writes and take up space. Knowing when to add one is an art.
  2. Pam L.
    A primary key automatically creates an index. That's something a lot of beginners don't realize.
  3. Chris T.
    Without an index the database has to scan every row. With one it can jump straight to the data. Huge performance difference.

Leave a comment