![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 123 Pomógł: 0 Dołączył: 10.11.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
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 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 24.09.2003 Skąd: Giżycko / Wrocław Ostrzeżenie: (0%) ![]() ![]() |
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.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 7 Dołączył: 26.03.2004 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
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ść).
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 123 Pomógł: 0 Dołączył: 10.11.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
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?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 24.09.2003 Skąd: Giżycko / Wrocław Ostrzeżenie: (0%) ![]() ![]() |
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ń.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 16:31 |