Sante Caserio
pubblicato più di 2 anni fa

L'istruzione CHECKSUM TABLE

Effettuare il checksum di una data tabella

Il CHECKSUM è un valore ottenuto sommando alcuni byte dei dati di una tabella. E’ utile per verificare l’integrità dei dati. Se due tabelle sono identiche, il loro CHECKSUM deve essere uguale; si tenga però presente che, in rari casi, non è vero il contrario: il CHECKSUM di due tabelle diverse potrebbe essere uguale.

Quando si crea una tabella, se lo Storage Engine supporta il CHECKSUM in tempo reale (aggiornato ogni volta che vengono aggiornati i dati), è possibile abilitarlo. In questo modo, sarà possibile in ogni momento controllare l’integrità dei dati presenti nella tabella. Se invece non è supportato o si sceglie di non abilitarlo (aumentando così leggermente le prestazioni) sarà comunque possibile calcolarlo in qualsiasi momento, anche se l’operazione risulterà piuttosto lenta per tabelle di grandi dimensione; ciò sarà utile per confrontare due tabelle che dovrebbero essere identiche (ad esempio in un database replicato). Attualmente gli unici SE che supportano il CHECKSUM in tempo reale sono MyISAM e Maria.

Per abilitare il CHECKSUM in tempo reale occorre impostare a 1 l’opzione CHECKSUM con l’istruzione CREATE TABLE o con ALTER TABLE; per disabilitarlo, si può impostarlo a 0 (valore predefinito).

1CREATE TABlE t1 (definizione) CHECKSUM = 1;

Sintassi

La sintassi di CHECKSUM TABLE è la seguente:

1CHECKSUM TABlE nome_tabella [ QUICK | EXTENDED ]

nome_tabella può anche essere un elenco di tabelle separate da una virgola, nel qual caso verrà restituito un record per ogni tabella.

Opzioni

QUICK restituisce il CHECKSUM per ogni tabella presente nella lista, purché il CHECKSUM in tempo reale sia attivo. Per ogni tabella che non abbia il CHECKSUM in tempo reale abilitato, restituisce NULL.

EXTENDED restituisce il CHECKSUM per tutte le tabelle presenti nella lista. Anche se il CHECKSUM in tempo reale è supportato, esso viene comunque ricalcolato. Per tabelle di piccole dimensioni, l’uso di questa modalità non comporta problemi.

Se non è specificato QUICKEXTENDED, MySQL tenta di restituire il CHECKSUM in tempo reale; se non esiste, calcola il CHECKSUM sul momento.

L’output

L’output di questa istruzione è un recordset formato da due colonne:

  • Table è il nome di una tabella specificata
  • Checksum è il valore CHECKSUM di quella tabella

Se una delle tabelle specificate non esiste non viene generato un warning 1146 e viene restituito il valore NULL per quella tabella.

Condividi su:

Esprimi un voto:

  • Current rating: 0.0/5
  • 1
  • 2
  • 3
  • 4
  • 5

Argomenti chiave:

Ultimi commenti Ultimi commenti

Esegui il Login oppure registrati per scrivere un commento.
Cerca nel sito...
Ultime recipes

Un utilissimo tool di shell che effettua un dettagliato e comodo report su MySQL MySQL Report un tool di shell per tenere tutto sotto controllo

Un utilissimo tool di shell che effettua un dettagliato e comodo report su MySQL


Vai alla recipe

Un utilissimo tool per sniffare il traffico Client/Server TCP/IP di MySQL MySQLSniffer sniffare il traffico TCP di MySQL

Un utilissimo tool per sniffare il traffico Client/Server TCP/IP di MySQL


Vai alla recipe

Verificare l'integrità, riparare gestire chiavi e memoria di tabelle MyISAM attraverso myisamchk riparare file MyISAM

Verificare l'integrità, riparare gestire chiavi e memoria di tabelle MyISAM attraverso il file myisamchk


Vai alla recipe

Un tool per comprimere le tabelle MyISAM fino a oltre il 50% myisampack comprimere file MyISAM

Un tool per comprimere le tabelle MyISAM fino a oltre il 50%


Vai alla recipe

mysqlshow le info di base sui database, tabelle e colonne senza utilizzare alcun mysqlshow visualizzare le informazioni sul database MySQL

mysqlshow le info di base sui database, tabelle e colonne senza utilizzare alcun client


Vai alla recipe

Utilizzando UNION / UNION ALL su campi int unsigned zerofill,
ho notato che MysqlUNION / UNION ALL su campi int unsigned zerofill. di DebUsr
Vai al tip

Utilizzo di funzioni come alias di campo tramite l'impiego di prepared statementReport con alias di campo dinamici di john_revelator
Vai al tip

Può capitare che sia necessario eseguire un dump di database in formato Comma SeparatedEsecuzione dump in formato CSV (tabelle in engine MyIsam esportate in formato CSV) di ghigomatto
Vai al tip

E' possibile eseguire le query SQL contenute in un file di testo. Questo è utileEseguire le query da un file di testo di Sante Caserio
Vai al tip

Se vogliamo fare il backup di tutti i database con mysqldump, e ne abbiamo parecchiFare il backup di tutti i database di Sante Caserio
Vai al tip

Salve, dopo tante storie ho studiato il php e mysql .. . che in questo forum parlavo php e campo mysql timestamp di gigi Vai al topic

ciao a tutti ho creato un forum su aruba ma non so come farlo visualizzare nel mio aruba di albertodiprima Vai al topic

Salve a tutti gente, questo è il mio primo post su questo forum e questo a causa Problema Gravissimo con AutoIncrement di stefanoadsl Vai al topic

Salve! Mi presento, mi chiamo Adriano e sono uno studente di ingegneria informatica Problema Trigger di Xanakro Vai al topic

Ciao a tutti!
Volevo chiedere una informazione.
Ho una query che lanciata la prima Query Eseguita più volte di OltreLeStelle Vai al topic