Rozpalacz
3.02.2015, 09:51:17
Mam tabelkę z 4 kolumnami głównymi po których przeszukuję tabelę
[INFO_1][INFO_2][INFO_3][INFO_4]
Klucz główny jest na dwie kolumny [INFO_1][INFO_2]. Czy muszę dodatkowo tworzyć indeks na [INFO_1] oraz [INFO_2] jeśli będę wyszukiwał tylko po jednej z nich? Czy opłaca się tworzyć indeksy na dwie kolumny czy lepiej indeksy na każdą kolumnę indywidualnie? Jaka jest różnica w wydajności indeksów na kilka kolumn a na jedną kolumnę. Czy jest sens zakładania indeksu na dwie kolumny [INFO_3][INFO_4] dla zapytań gdzie używam warunku where z obiema kolumnami i dodatkowo zakładania indeksu dla kolumny [INFO_3] i indeksu dla kolumny [INFO_4] jeśli będę miał zapytanie gdzie będę używał tylko jednej kolumny w warunku where?
Pyton_000
3.02.2015, 10:00:00
Indeksy to dość rozległy temat.
Indeksy wielokolumnowe maja to do siebie że ich użycie definiuje jakie indeksy są użyte i tak np:
Indeksy na kolumne: col1,col2,col3,col4
Wyszukiwanie:
col1,col2 - zadziała indeks
col1,col2,col4 - nie zadziała indeks ze względu że opuściliśmy jedną kolumnę.
Ogólnie indeksy wielokolumnowe są trochę bardziej wydajne niż pojedyncze.
W Twoim przypadku zastanów się nad dwoma dwukolumnowymi czyli info_1,info_2 jako PK i info_3,info_4 jako indeks.
Ale to też tylko w przypadku szukania po 2 kolumnach, a jeżeli faktycznie info_3 i info_4 są rozdzielne w szukaniu czyli albo albo to możesz pojedyncze.
Weź też pod uwagę że indeksy obniżają wydajność podczas INSERT.
starterrrrr
21.04.2015, 11:38:13
Witam, podłacze siępod temat.
Czy macie gdzieś namiary na jakiś kurs/poradnik tworzenia indeksów w bazach danych?
Szukałem w google, ale nic ciekawego nie znalazłem niestety :/
Pyton_000
21.04.2015, 11:40:43