Indeks złożony wykorzystuje do indeksowania danych więcej niż jedną kolumnę tabeli.
Przeszukiwanie dwu lub więcej kolumn jako całości
Indeksy złożone należy tworzyć, gdy przeszukiwanie kilku kolumn jako całości jest lepszym rozwiązaniem. Indeks taki należy tworzyć także wtedy, gdy kwerendy odwołują się jedynie do kolumn w tym indeksie. Przykładowo, książka telefoniczna jest dobrym przykładem, w którym indeks złożony może być użyteczny. Książka ta jest ułożona według nazwisk. W obrębie nazwiska układana jest ona według imion, ponieważ pozycje o takim samym nazwisku występują dość często.
|
Przy tworzeniu indeksu złożonego należy zwrócić uwagę na następujące fakty i zalecenia:
|
- Jeden indeks złożony może składać się maksymalnie z 16 kolumn. Suma długości kolumn składających się na indeks złożony nie może przekroczyć 900 bajtów.
- Wszystkie kolumny w indeksie złożonym muszą należeć do jednej tabeli.
- Jako pierwsza powinna być wskazana kolumna najbardziej unikalna. Pierwsza kolumna zdefiniowana w instrukcji CREATE INDEX traktowana jest jako podstawowy porządek sortowania.
- Klauzula WHERE w kwerendzie musi odwoływać się do pierwszej kolumny indeksu złożonego, aby optymalizator kwerend wykorzystał ten indeks.
- Indeks na (kol1, kol2) nie jest tym samym co indeks na (kol2, kol1)-mają one różne kolejności kolumn. Kolumna zawierająca bardziej unikalne dane lub zwracająca mniejszą część wierszy zwykle narzuca kolejność kolumn. W pewnych sytuacjach korzystne jest utworzenie dwóch indeksów złożonych, z różną kolejnością tych samych kolumn.
- Indeksy złożone są użyteczne w tabelach z wieloma kolumnami kluczowymi.
|
Poniższy przykład tworzy niezgrupowany, złożony indeks w tabeli wypozyczenia. Kolumny isbn i nr_kopii zawierają złożone wartości kluczowe. Należy zauważyć, że kolumna isbn została wymieniona jako pierwsza, gdyż zawiera bardziej unikalne wartości niż kolumna nr_kopii.
|
USE biblioteka
CREATE INDEX ident_wypozyczenia
ON wypożyczenia (isbn, nr_kopii)
|
Zasady stosowania indeksów.
Środowisko firmy, charakterystyka oraz wykorzystanie danych determinuje, jakie kolumny należy wybrać do tworzenia indeksów. Użyteczność indeksów jest bezpośrednio związana z procentową częścią wierszy zwracanych przez kwerendę. Mały procent i duża rozróżnialność zapewniają lepszą efektywność.
Kolumny, które należy indeksować
|
Przy podejmowaniu decyzji o wyborze kolumn do indeksowania należy wziąć pod uwagę następujące zalecenia:
|
- Indeks dla klucza podstawowego należy tworzyć definiując ograniczenie PRIMARY KEY.
- Indeks należy tworzyć dla klucza zewnętrznego i kolumn często wykorzystywanych przy łączeniu tabel.
- Indeks należy tworzyć dla kolumn wykorzystywanych przy wyszukiwaniu przedziałów wartości.
- Indeks należy tworzyć dla kolumn, z których pobiera się posortowane dane.
- Indeks należy tworzyć dla kolumn, które są często przeszukiwane.
|
| Kolumny których nie należy indeksować |
- Kolumny, do których kwerendy rzadko się odwołują.
- Kolumny zawierające mało unikalnych wartości. Przykładowo, indeks na kolumnie z dwoma wartościami, mężczyzna i kobieta, zwraca zawsze dużą część wierszy.
- Kolumny zdefiniowane z typem danych bit, text i image. Te typy danych nie mogą być indeksowane.
|