Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Sprawdź i zoptymalizuj bazę danych MySQL automatycznie za pomocą Crontab/Cron

MySQL to bardzo popularny darmowy, ale potężny system baz danych. Ale nawet w wielkich bazach danych tabele mogą ulec fragmentacji z obciążeniem ze względu na ciągłą aktualizację lub operacje usuwania i wstawiania na danych przechowywanych w bazie danych. Poza tym istnieje również możliwość uszkodzenia baz danych. Dlatego też regularne przeprowadzanie kontroli stanu bazy danych i optymalizacja serwera MySQL jest ważnym zadaniem.

To trochę kłopotliwe, jeśli administratorzy baz danych muszą zalogować się do serwera lub uruchomić phpMyAdmin, aby zoptymalizować bazy danych pojedynczo lub ręcznie tabela po tabeli. Czasami administrator DB może po prostu zapomnieć o wykonaniu zadania lub ustawić częstotliwość optymalizacji na mniejszą liczbę razy. Zaleca się, aby wszystkie tabele w bazach danych MySQL były sprawdzane przynajmniej raz dziennie na zajętym serwerze.

Możliwe jest zautomatyzowanie optymalizacji procesu MySQL za pomocą funkcji crontab w Linux/Unix/CentOS/FreeBSD. Zadanie cron sprawdzające i optymalizujące bazy danych MySQL można utworzyć za pomocą narzędzia klienta mysqlcheck dostarczanego z instalacją MySQL. Klient mysqlcheck może sprawdzać, naprawiać, optymalizować i analizować tabele w bazie danych MySQL.

Aby utworzyć nowe zadanie cron, zaloguj się do serwera jako root lub inny użytkownik, a następnie edytuj plik crontab (w większości systemów operacyjnych crontab -e otworzy plik crontab w domyślnym edytorze tekstu), aby dodać następujący wiersz tekstu. W przypadku użytkowników korzystających z cPanel kliknij „Zadanie Cron”, w którym możesz skonfigurować crontab w odstępach dziennych, godzinowych i innych. Doświadczeni webmasterzy mogą również skonfigurować plik crontab w rc.hourly lub rc.daily lub innym katalogu cron. Pamiętaj, że jeśli zalogujesz się jako MySQL lub zwykły użytkownik bez uprawnień dostępu do wszystkich baz danych, nie jest możliwe zoptymalizowanie wszystkich baz danych, chyba że identyfikator użytkownika i hasło dla roota są określone w przykładzie poniżej.

0 1 * * * mysqlcheck -Aao --auto-repair -u root -p[password] > /dev/null

Powyższa instrukcja ma składnię podobną do „mysqlcheck [opcje] –all-databases”, gdzie parametr –all-databases jest akcją domyślną, jeśli nie określono żadnych baz danych, dlatego można go pominąć. Polecenie uruchomi klienta mysqlcheck, aby automatycznie analizować i optymalizować wszystkie bazy danych codziennie o 1 w nocy. Zwróć uwagę, że nie ma spacji między -p a hasłem użytkownika root. Możesz zmienić czas działania zgodnie ze swoimi preferencjami, a także zmienić opcje polecenia mysqlcheck. Jeśli chcesz tylko sprawdzić i zoptymalizować określone bazy danych lub określone tabele bez bazy danych, użyj następującej składni:

mysqlcheck [options] db_name [tables]
mysqlcheck [options] --databases DB1 [DB2 DB3...]

Możesz chcieć usunąć przełącznik –auto-repair z powyższego polecenia, ponieważ operacja naprawy tabeli może w pewnych okolicznościach spowodować utratę danych. Operacja ta jest spowodowana między innymi błędami systemu plików. Osoby, które zmieniły zestaw znaków i sortowanie baz danych MySQL, mogą również potrzebować opcji –default-character-set. Więcej informacji na temat wszystkich dostępnych przełączników i dostępnych opcji można znaleźć tutaj.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kolumna autoinkrementacji MySQL przeskakuje o 10, dlaczego?

  2. Python 3.4.0 z bazą danych MySQL

  3. Funkcje ciągów MySQL (pełna lista)

  4. Podzapytania a połączenia

  5. zaimplementuj zapytanie LIKE w PDO