niedziela, 2 września 2018

SQL - indeksy


SQL - indeksy

Indeksy są specjalnymi tablicami wyszukiwania, których silnik bazy danych może użyć do przyspieszenia pobierania danych. Po prostu, 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 odwołać się do wszystkich stron w książce, która omawia pewien temat, najpierw odwołaj się do indeksu, który zawiera listę wszystkich tematów alfabetycznie, a następnie odnoszą się do jednej lub więcej określonych numerów stron.
Indeks pomaga przyspieszyć zapytania SELECT i klauzule WHERE, ale spowalnia wprowadzanie danych za pomocą instrukcji UPDATE i INSERT. Indeksy mogą być tworzone lub usuwane bez wpływu na dane.
Utworzenie indeksu obejmuje instrukcję CREATE INDEX, która pozwala nazwać indeks, określić tabelę i kolumnę lub kolumny do indeksowania oraz wskazać, czy indeks jest w porządku rosnącym, czy malejącym.
Indeksy mogą być również unikalne, takie jak ograniczenie UNIQUE, ponieważ indeks zapobiega duplikowaniu wpisów w kolumnie lub kombinacji kolumn, w których znajduje się indeks.

Polecenie CREATE INDEX

Podstawowa składnia CREATE INDEX jest następująca.
CREATE INDEX nazwa_indeksu ON nazwa_tabeli;

Indeksy jedno-kolumnowe

Indeks jednokolumnowy jest tworzony na podstawie tylko jednej kolumny tabeli. Podstawowa składnia jest następująca.
CREATE INDEX nazwa_indeksu
ON nazwa_tabeli (nazwa_kolumny);

Unikalne indeksy

Unikalne indeksy są używane nie tylko do wydajności, ale także do integralności danych. Unikalny indeks nie pozwala na wstawianie żadnych duplikatów do tabeli. 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 na dwóch lub więcej kolumnach tabeli. Jego podstawowa składnia jest następująca.
CREATE INDEX nazwa_indeksu
on nazwa_tabeli (kolumna1, kolumna2);
Niezależnie od tego, czy utworzymy indeks jednokolumnowy, czy indeks złożony, należy wziąć pod uwagę kolumny, których można bardzo często używać w klauzuli WHERE jako warunków filtrowania.
Jeśli istnieje tylko jedna kolumna, wybór powinien stanowić indeks jednokolumnowy. Jeśli w klauzuli WHERE jako filtry znajdują się dwie lub więcej kolumn, najlepszym wyborem będzie indeks złożony.

Implicit Indexes

Implicit indexes to indeksy tworzone automatycznie przez serwer bazy danych podczas tworzenia obiektu. Indeksy są tworzone automatycznie dla ograniczeń klucza podstawowego i unikalnych ograniczeń.

Polecenie DROP INDEX

Indeks można usunąć za pomocą polecenia SQL DROP. Podczas usuwania indeksu należy zachować ostrożność, ponieważ wydajność może ulec spowolnieniu lub poprawić się.
Podstawowa składnia jest następująca:
DROP INDEX nazwa_indeksu;
Możesz sprawdzić rozdział Ograniczenia INDEKSU, aby zobaczyć rzeczywiste przykłady indeksów.

Kiedy należy unikać indeksów?

Chociaż indeksy mają na celu zwiększenie wydajności bazy danych, czasami należy ich unikać.
Poniższe wytyczne wskazują, kiedy należy ponownie rozważyć użycie indeksu.
·      Indeksy nie powinny być używane na małych tabelach.
·      Tabele z częstymi, dużymi aktualizacjami wsadowymi lub operacjami wstawiania.
·      Indeksy nie powinny być używane w kolumnach, które zawierają dużą liczbę wartości NULL.
·      Kolumny, które często są manipulowane, nie powinny być indeksowane.


Brak komentarzy:

Prześlij komentarz