SQL - indeksy

Indeksy są special lookup tablesktóre wyszukiwarka bazy danych może wykorzystać do przyspieszenia wyszukiwania danych. Mówiąc najprościej, indeks jest wskaźnikiem do danych w tabeli. Indeks w bazie danych jest bardzo podobny do indeksu na końcu książki.

Na przykład, jeśli chcesz odnieść się do wszystkich stron w książce, która omawia określony temat, najpierw odwołaj się do indeksu, który zawiera listę wszystkich tematów w porządku alfabetycznym, a następnie odsyła się do jednego lub kilku określonych numerów stron.

Indeks pomaga przyspieszyć SELECT zapytania i WHERE klauzule, ale spowalnia wprowadzanie danych, z UPDATE i INSERTsprawozdania. Indeksy można tworzyć lub usuwać bez wpływu na dane.

Tworzenie indeksu obejmuje rozszerzenie CREATE INDEX instrukcja, która umożliwia nazwanie indeksu, określenie tabeli i kolumny do indeksowania oraz wskazanie, czy indeks jest w porządku rosnącym, czy malejącym.

Indeksy mogą być również unikalne, takie jak UNIQUE ograniczenie polegające na tym, że indeks zapobiega zduplikowanym wpisom w kolumnie lub kombinacji kolumn, w których znajduje się indeks.

Polecenie CREATE INDEX

Podstawowa składnia CREATE INDEX następująco.

CREATE INDEX index_name ON table_name;

Indeksy jednokolumnowe

Indeks jednokolumnowy jest tworzony na podstawie tylko jednej kolumny tabeli. Podstawowa składnia jest następująca.

CREATE INDEX index_name
ON table_name (column_name);

Unikalne indeksy

Unikalne indeksy służą nie tylko wydajności, ale także integralności danych. Unikalny indeks nie pozwala na wstawienie do tabeli zduplikowanych wartości. Podstawowa składnia jest następująca.

CREATE UNIQUE INDEX index_name
on table_name (column_name);

Indeksy złożone

Indeks złożony to indeks dwóch lub więcej kolumn tabeli. Jego podstawowa składnia jest następująca.

CREATE INDEX index_name
on table_name (column1, column2);

Niezależnie od tego, czy chcesz utworzyć indeks jednokolumnowy, czy indeks złożony, weź pod uwagę kolumny, których możesz często używać w klauzuli WHERE zapytania jako warunki filtru.

W przypadku użycia tylko jednej kolumny, należy wybrać indeks jednokolumnowy. Jeśli w klauzuli WHERE są często używane dwie lub więcej kolumn jako filtry, najlepszym wyborem będzie indeks złożony.

Niejawne indeksy

Niejawne indeksy to indeksy, które są automatycznie tworzone przez serwer bazy danych podczas tworzenia obiektu. Indeksy są tworzone automatycznie dla ograniczeń klucza podstawowego i ograniczeń unikalności.

Polecenie DROP INDEX

Indeks można usunąć za pomocą SQL DROPKomenda. Należy zachować ostrożność podczas upuszczania indeksu, ponieważ wydajność może spowolnić lub poprawić.

Podstawowa składnia jest następująca -

DROP INDEX index_name;

Możesz zajrzeć do rozdziału Ograniczenia INDEKSU, aby zobaczyć rzeczywiste przykłady dotyczące indeksów.

Kiedy należy unikać indeksów?

Chociaż indeksy mają na celu zwiększenie wydajności bazy danych, są chwile, kiedy należy ich unikać.

Poniższe wytyczne wskazują, kiedy należy ponownie rozważyć użycie indeksu.

  • Indeksów nie należy używać w przypadku małych tabel.

  • Tabele, które mają częste, duże aktualizacje wsadowe lub operacje wstawiania.

  • Indeksów nie należy używać w kolumnach, które zawierają dużą liczbę wartości NULL.

  • Kolumny, które są często modyfikowane, nie powinny być indeksowane.