Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Indeksy
Forum PHP.pl > Forum > Bazy danych > MySQL
tumeks
Witam! Mam pytanie odnośnie indeksów w MySQL'u posiadam grę www.knights.pl gra już troche ma i baza danych jest bardzo duża i teraz pytanie jak rozłożyć indeksy aby gra działała szybciej? Z tego co czytałem i zrozumiałem to indeksy nakłada się na te pola które umieszczam w WHERE - index do liczb, a FULLTEXT dla tekstu.

Powiedzmy że mam tabele:
Kod
id     
nazwa     
atak     
obrona     
hp     
exp     
exp1     
zloto     
zloto1     
lvl     
obr_min     
obr_max     
img

dane wyszukuje według lvla, więc index nałożyć tylko na pole "lvl" ? oczywiscie w zapytaniu pobieram wszytkie dane.

Pozdrawiam
Denver
Przeszukaj dokumentację MySQL'a pod kątem polecenia "EXPLAIN ...". Rezultat tego polecenia w znacznej mierze pomoże Ci we właściwym doborze indeksów.
Indeo
Po pierwsze indeksy nakłada sie na pola, będące węzłami relacji pomiędzy tabelami na zasadzie towary.id_towaru = dostawcy.id_towaru. Po drugie tak jak napisałes - na polach po których dużo sie szuka lub sortuje. Warto tez zastanowić się czasami nad bardziej złożonymi kluczami (kombinacja pól, unikalność).
tumeks
No to tak posłuchałem waszych rad ale mam pewien dylemat tak jak pisza dodanie indeksu przyspisza wyszukiwanie ale zwalnia dodawanie i edytowanie skoro mam np. tabele w ktorej sa zachowane postacie i tam prawie co pochwila jest jakis update opłaca się tam rzucić indeks? Czy np. w karczmie (chat) w której bardzo dużo osob pisz rzucic na treść fulltext?
Denver
Nikt Ci nie poda konkretnej odpowiedzi: tak, indeks jest potrzebny, lub nie, zrezygnuj z indeksów w Twojej bazie. Musisz mocno przetestować oba rozwiązania i wybrać te, które będzie najlepsze dla użytkowników. W większości przypadków radzę jednak indeksy założyć. Nie spotkałem się jeszcze z bazą, której to jakoś wybitnie zaszkodziło, natomiast wiele razy indeksy ratowały mnie przed fatalną wydajnością zapytań.
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.