Optimalisering av MySQL-databasetabeller reorganiserer tabell- og indeksdata, reduserer bruksområde og forbedrer I/O-effisiens. Dette er spesielt nyttig når phpMyAdmin opplever tidsavbrudd med store databaser, da SSH gir en mer pålitelig metode for optimalisering.
Hvordan gjør du det
-
Trinn 1: Koble til via SSH og kjør optimaliseringskommandoen
Bruk følgende kommando for å optimisere alle tabeller i databasen din:
mysql -u username -ppassword -h hostname databasename -e "show tables" | grep -v Tables_in | grep -v "+" | gawk '{print "optimize table " $1 ";"}' | mysql -u username -ppassword -h hostname databasenameErstatt plassholdere med dine faktiske databaseinformasjon:
- username: Ditt databasebrukernavn
- password: Brukers passord
- hostname: Aktiv database vertsnavn
- databasename: Navnet på databasen der du kjører kommandoen
Valgfritt, fang loggen fra kommandoen ved å legge til
>> results.txtfor å gjennomsøke resultater senere. -
Trinn 2: Automatiser med en Cron-jobb (Valgfritt)
For månedlig automatisk optimalisering, opprett en shell-skript med følgende innhold:
#!/bin/sh /usr/bin/mysqlcheck -o -v -u USER -p PASSWORD -h MYSQL.EXAMPLE.COM DATABASENAME;Erstatt store bokstaver plassholdere (
USER,PASSWORD,MYSQL.EXAMPLE.COM, ogDATABASENAME) med dine spesifikke databaselegitimasjoner. Planlegg dette skriptet som en månedlig cron-jobb for å sikre rutine vedlikehold og optimalisering av MySQL-tabellene dine. -
Trinn 3: Reparer tabeller i stedet for å optimisere (Hvis nødvendig)
For å reparere en tabell i stedet for å optimalisere den, kjør følgende kommando:
mysql -u username -ppassword -h hostname databasename -e "show tables" | grep -v Tables_in | grep -v "+" | gawk '{print "repair table " $1 ";"}' | mysql -u username -ppassword -h hostname databasenameErstatt plassholdere med dine virkelige databaseinformasjon.