CHECK TABLE
Sintassi
CHECK TABLE nome_tabella [, nome_tabella] ... [opzione] ... opzione = {FOR UPGRADE | QUICK | FAST | MEDIUM | EXTENDED | CHANGED}
Spiegazione
CHECK TABLE
controlla se una o più tabelle contengono errori. Funziona su tabelle Archive, Aria, CVS, InnoDB e MyISAM. Con Aria e MyISAM, aggiorna anche le statistiche sugli indici.
CHECK TABLE
può anche controllare se ci sono problemi in una vista, ad esempio se le tabelle che sono nominate nella definizione della vista non esistono più.
Supporta anche le tabelle partizionate. E' possibile utilizzare ALTER TABLE ... CHECK PARTITION
per verificare una o più partizioni.
I significati delle diverse opzioni sono i seguenti (si noti che il comportamento può variare leggermente a seconda dello Storage Engine):
FOR UPGRADE | Effettua una verifica veloce per controllare se il formato dei dati della tabella è cambiato, nel qual caso occorre eseguire un REPAIR. E' necessario solo quando si esegue un upgrade tra le versioni maggiori di MariaDB o MySQL. Solitamente questa operazione si esegue tramite mysql_upgrade. |
FAST | Controlla solo se le tabelle sono state chiuse correttamente o se sono marcate come corrotte. Funziona solo su tabelle MyISAM e Aria. Con gli altri Storage Engine, la tabella viene verificata normalmente. |
CHANGED | Verifica solo le tabelle che sono state modificate dopo l'ultimo REPAIR / CHECK. Funziona solo sulle tabelle MyISAM e Aria. Con gli altri Storage Engine la tabella viene verificata normalmente. |
QUICK | Esegue una verifica veloce. In MyISAM e Aria questo significa che non viene controllata la catena dei collegamenti eliminati, che potrebbe richiedere un certo tempo. |
MEDIUM | Effettua anche una scansione del file dei dati. Verifica anche l'integrità dei file dei dati e degli indici con dei checksum. Nella maggior parte dei casi, in questo modo si trovano tutti i possibili errori. |
EXTENDED | Esegue una verifica completa cercando ogni possibile tipo di errori. Con MyISAM e Aria, verifica ogni riga controllando che tutte le sue chiavi esistano e puntino alla riga. Questa operazione può richiedere molto tempo sulle tabelle di grandi dimensioni! |
Nella maggioranza dei casi, è sufficiente eseguire CHECK TABLE
senza opzioni, o con MEDIUM
.
Se si desidera invece sapere se due tabelle sono identiche, si può utilizzare CHECKSUM TABLE
.