Baza wiedzy

Optymalizacja bazy danych MySQL

Czym są nieoptymalne zapytania MySQL?

Nieoptymalnymi zapytaniami MySQL nazywamy zapytania, których wykonanie trwa dłużej niż 1 sekunda. Zapytania te wpływają na szybkość ładowania strony i wyczerpują zasoby serwera. Aby rozwiązać ten problem najczęściej wystarczy kilka działań optymalizacyjnych.

Jak mogę sprawdzić które zapytania MySQL są nieoptymalne?

Wykres liczby nieoptymalnych zapytań MySQL znajduje się w panelu klienta w "informacjach i opcjach" usługi.

Log nieoptymalnych zapytań znajdziemy w pliku slow.log umieszczonym w głównym (najwyższym) katalogu FTP. Log jest odświeżany raz na dobę, w godzinach nocnych.

Najczęstsze przyczyny nieoptymalnych zapytań

  • zapytania typu SELECT z klauzulą WHERE dotyczącą tabel bez indeksów
  • duża ilość zapytań typu INSERT lub UPDATE dotyczących tabel o dużej wielkości i/lub zawierających indeksy
  • zapytania z klauzulą JOIN dotyczącą tabel bez indeksów

Sposób działania indeksów

Indeksy pozwalają na szybsze wyszukiwanie danych. Gdy indeks jest utworzony, serwer przeszukuje jedynie dane przygotowane specjalnie do przeszukiwania. Indeksy są tworzone na nowo, gdy dane w tabeli są uaktualniane, dlatego tworzenie indeksów do tabel, które są rzadko odczytywane a często uaktualniane jest nieopłacalne.

Optymalizacja zapytań

Zapytania typu SELECT wymagają założenia indeksów na pola wobec których używana jest klauzula WHERE lub LIKE. Zapytania typu JOIN wymagają założenia indeksów na pola, które są warunkiem łaczenia.

Indeksy powinny być usunięte z tabel, na których częściej są wykonywane operacje typu INSERT, UPDATE lub DELETE niż SELECT, np. z tabel zawierających logi lub statystyki.

Jak zarządzać indeksami?

Narzędzie phpMyAdmin oferuje proste zarządzanie indeksami. Indeksy możemy założyć po wejściu do struktury tabeli korzystając z linków w kolumnie "działanie". Najlepszym dla optymalizacji typem indeksu będzie indeks zwykły ("Indeks").

Zakładanie indeksów w phpMyAdmin

Usuwanie i edycja indeksów jest możliwa po kliknięciu napisu "Indeksy" pod formularzem dodawania kolumny.

Zarządzanie indeksami w phpMyAdmin

Oceń przydatność:


Zobacz także: