pytanie nurtuje mnie od dłuższego czasu, nawet specjalnie poszedłem na kurs baz danych, żeby poznać pewną odpowiedź, ale jak na złość akurat na tym jednym wykładzie, na którym to było omawiane, nie mogłem być :/
Problem dotyczy konkretnie bazy MySQL i na przykład takiej tabeli "komentarze":
- id_komentarza (klucz główny)
- id_komentowanego_artykulu
- wartosc_komentarza
- treść itp.
chcę pobrać z bazy komentarze do danego artykułu, posortować je według wartości i wyświetlić pierwsze kilka, widzę dwa rozwiązania:
- indeks na obie kolumny na raz - na pewno przyspieszyło by to selecta na obie te kolumny, ale czy na pewno przyspieszy select na jedną i sort po drugiej?
- indeks na każdą z osobna - na pewno przyspieszy to select, ale czy nie zignoruje wtedy drugiego indeksu?
Prosiłbym o pewne odpowiedzi - strategię "im więcej indeksów tym lepiej" znam, potrzebuję czegoś z głową ;). Najfajniej by było, jakby ktoś poparł stwierdzenie "tamto jest szybsze" jakimś wyjaśnieniem dlaczego. Problem nie dotyczy tylko wspomnianych komentarzy, ogólnie zderzam się z nim co jakiś (krótki) czas, więc takich danych do posortowania może być dużo.