Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PK + indeksy na kolumnę czy na kilka kolumn
Forum PHP.pl > Forum > Bazy danych
Rozpalacz
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
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
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
Niektórym przydałby się kurs szukania w Google...
http://blog.mwojcik.pl/2009/07/06/mysql-in...-i-klucze-obce/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.