Baza danych to silnik większości stron i aplikacji, a z czasem rośnie i zbiera dane, które tylko ją obciążają, przez co zapytania zwalniają. Regularna konserwacja utrzymuje ją w dobrej formie, a kilka prostych zabiegów potrafi zauważalnie przyspieszyć działanie witryny. Podstawy zarządzania bazami opisujemy w artykule o bazach MySQL, a tutaj skupiamy się na ich utrzymaniu.
Po co konserwować bazę
Zaniedbana baza spowalnia stronę z dwóch powodów: Rośnie jej rozmiar i pojawia się w niej fragmentacja, czyli “dziury” po usuniętych danych. Konserwacja:
- Przyspiesza zapytania, bo baza ma do przejrzenia mniej danych i lepiej ułożone tabele,
- Zwalnia miejsce na dysku, co bywa istotne przy limitach hostingu,
- Zmniejsza ryzyko awarii, bo uszkodzone tabele wychwytujesz, zanim zatrzymają stronę.
Gdzie zarządzasz bazą
Do konserwacji wystarczy phpMyAdmin, graficzne narzędzie, w którym wykonasz wszystkie poniższe operacje bez znajomości komend SQL. Zakładanie baz opisujemy w artykule o bazach MySQL.
- Zaloguj się do panelu klienta i przejdź: Produkty/Usługi → Hosting WWW → Do panelu.
- Przejdź: sekcji Bazy danych, wybierz swoją bazę i naciśnij przycisk phpMyAdmin.
- W phpMyAdmin przejdź na zakładkę Struktura, gdzie zobaczysz listę tabel wraz z ich rozmiarem.
Uwaga
Przed każdą operacją na bazie zrób jej kopię (eksport w phpMyAdmin); dodatkowo masz automatyczne kopie hostingu (poradnik o kopiach). Zmiany w bazie są trudne do cofnięcia, a kopia daje pewny punkt powrotu, jeśli coś pójdzie nie tak.
Optymalizuj tabele
Gdy z tabeli usuwasz dane, miejsce po nich nie zawsze zwalnia się od razu, co prowadzi do fragmentacji i wolniejszego dostępu. Optymalizacja tabeli porządkuje ją na nowo i odzyskuje wolną przestrzeń.
- W phpMyAdmin otwórz bazę i przejdź na zakładkę Struktura.
- Zaznacz tabele (lub kliknij Zaznacz wszystkie).
- W menu Z zaznaczonymi wybierz Optymalizuj tabelę.
Wskazówka
Najwięcej zyskujesz na tabelach, w których często coś dodajesz i kasujesz (np. logi, sesje, koszyki, komentarze). Optymalizację warto powtarzać okresowo, a nie jednorazowo.
Czyść zbędne dane
Najszybciej odchudzisz bazę, usuwając dane, które nie są już potrzebne. W aplikacjach takich jak WordPress czy sklepy internetowe zbierają się one same:
- Stare wersje wpisów (rewizje) i elementy w koszu,
- Spam i odrzucone komentarze,
- Tymczasowe dane i wygasłe wpisy (np. transienty w WordPress),
- Logi i dane porzucone przez odinstalowane wtyczki.
W aplikacji najbezpieczniej posprzątać te dane jej własnymi narzędziami (np. wtyczką do optymalizacji bazy w WordPress), bo zna zależności między tabelami. Dla WordPress zbieramy te zabiegi w artykule o przyspieszaniu WordPress.
Informacja
Ręczne kasowanie wierszy wprost w phpMyAdmin rób tylko, gdy wiesz, za co odpowiada dana tabela. Usunięcie potrzebnych danych potrafi uszkodzić działanie aplikacji.
Naprawiaj uszkodzone tabele
Tabela może się uszkodzić po nagłym przerwaniu zapisu. Objawem bywa komunikat o błędzie bazy (“error establishing a database connection”, “table is marked as crashed”) albo znikające dane. Wiele takich przypadków naprawisz samodzielnie:
- W phpMyAdmin otwórz bazę i zakładkę Struktura.
- Zaznacz tabele i w menu Z zaznaczonymi wybierz Napraw tabelę.
Jeśli naprawa nie pomaga, a strona nadal zgłasza błąd bazy, przywróć bazę z kopii zapasowej. Hosting webh wykonuje kopie co godzinę, a przywracanie z panelu opisujemy w poradniku o kopiach.
Pilnuj rozmiaru bazy
Rosnąca baza zajmuje miejsce wliczane do limitów hostingu i z czasem działa wolniej. Warto co jakiś czas sprawdzić, co ją powiększa.
- W zakładce Struktura posortuj tabele po kolumnie rozmiaru i zobacz, które są największe.
- Jeśli pojedyncza tabela rośnie szybciej niż reszta (np. logi, statystyki, sesje), sprawdź w aplikacji, czy te dane są potrzebne i czy można ograniczyć ich gromadzenie.
Zadbaj o szybkie zapytania
Dwie rzeczy najbardziej wpływają na to, jak szybko baza odpowiada:
- Indeksy to coś w rodzaju spisu treści tabeli: Pozwalają bazie odnaleźć dane bez przeglądania całej tabeli. Dobrze zaprojektowane aplikacje zakładają je same, więc zwykle nie musisz nic robić. Jeśli jednak piszesz własne zapytania, które działają wolno, brak indeksu na często wyszukiwanej kolumnie bywa przyczyną.
- Aktualna wersja PHP i silnika bazy lepiej radzi sobie z zapytaniami. Wersję PHP swojej strony zmienisz zgodnie z artykułem o PHP.
Wpływ czasu odpowiedzi bazy na ogólną szybkość strony opisujemy w artykule o TTFB.
Zabezpiecz dane dostępowe do bazy
Konserwacja to też higiena dostępu. Dane logowania do bazy znajdują się w pliku konfiguracyjnym aplikacji (np. wp-config.php w WordPress), więc:
- Używaj silnego, unikalnego hasła do bazy,
- Nie udostępniaj pliku konfiguracyjnego i nie wgrywaj jego kopii do katalogu strony,
- Po podejrzeniu włamania zmień hasło do bazy, co opisujemy szerzej w artykule o bezpieczeństwie WordPress.
Najczęstsze pytania
Jak często powinienem optymalizować bazę?
Dla typowej strony wystarczy zajrzeć do bazy raz na jakiś czas (np. co kilka tygodni) lub po większych porządkach, takich jak usunięcie wielu wpisów czy wtyczek. Bardzo aktywne sklepy i serwisy warto sprawdzać częściej.
Czy optymalizacja tabel coś usuwa?
Nie. Optymalizacja porządkuje tabelę i odzyskuje wolne miejsce, ale nie kasuje Twoich danych. Mimo to przed operacją zrób kopię, bo to zdrowy nawyk przy każdej zmianie w bazie.
Strona pokazuje błąd połączenia z bazą, co robić?
Najpierw sprawdź, czy dane dostępowe w pliku konfiguracyjnym aplikacji są poprawne, i spróbuj naprawić tabele w phpMyAdmin (Napraw tabelę). Jeśli to nie pomaga, przywróć bazę z kopii zapasowej sprzed problemu.
Czy duża baza zawsze oznacza wolną stronę?
Nie zawsze, ale duża i zaniedbana baza zwykle spowalnia zapytania. Liczy się nie tylko rozmiar, ale i porządek: Zoptymalizowane tabele z właściwymi indeksami potrafią obsłużyć sporo danych bez utraty szybkości.