MySQL: differenze tra VARCHAR lunghi e TEXT

di Lorenzo Neri
574 visualizzazioni

Che differenze ci sono tra VARCHAR lunghi e TEXT nei DB MySQL? In questo articolo trattiamo queste differenze e capiamo quale è meglio usare.

Se sei qui, è perché almeno una volta ti è capitato di dover creare un campo nella tua tabella che contiene un informaticoo molto molto lungo, per esempio di 5000 caratteri al massimo.

Guardando i tipi che ci mette a disposizione MySQL per creare le tabelle, a fronte di questo dilemma che facciamo?

Ciao mi chiamo Lorenzo Neri e sono un informatico: realizzo contenuti per aiutare le persone a padroneggiare l’arte del nuovo millennio, ovvero l’informatica!

Usiamo un bel VARCHAR(5000) oppure un TEXT?

Come funziona VARCHAR e QUANDO usarlo

VARCHAR è stato pensato per contenere informaticoi non troppo lunghi.

Per intenderci, il suo ruolo si addice bene per le e-mail, i nomi di paesi e città, oggetti delle e-mail, nomi utenti e password.

Quindi, il suo obiettivo è quello di tenere salvate stringhe semplici e relativamente corte.

Questa è la prima differenza tra VARCHAR e TEXT.

Oltre a ciò, c’è un’altra peculiarità.

I dati di tipo VARCHAR, vengono salvati direttamente dentro la tabella in linea generale: che significa questo?

Significa che sono fisicamente memorizzati nella tabella in cui stiamo operando.

Questo, permette di seguire query in maniera molto più veloce ed efficiente.

A meno di alcune restrizioni e particolarità.

Per esempio, nei DB basati su InnoDB se si superano i 16KB di dimensioni effettive i dati vengono salvati al di fuori della tabella e qui lascio informazioni aggiuntive in merito.

E questo, dal punto di vista dell’efficienza, rallenta l’esecuzione delle query.

Fermiamoci un attimo.

Cosa significa “salvati al di fuori della tabella”?

Come funziona TEXT e QUANDO usarlo

Il tipo TEXT funziona in modo abbastanza simile a BLOB da un punto di vista del salvataggio.

Qui infatti, cominciamo a vedere la seconda ma più importante differenza tra VARCHAR e TEXT in MySQL e rispondo alla domanda di prima.

Siccome si tratta spesso e volentieri di contenuti molto grossi quelli contenuti dentro le colonne di tipo TEXT, non è efficiente tenerli salvati direttamente in tabella.

E allora, come vengono trattati? Puntatori.

I dati di tipo TEXT e BLOB proprio per rendere efficienti e rapide le query in termini di esecuzione, vengono salvati in file secondari rispetto a quello vero e proprio del database.

C’è un puntatore che fa riferimento al contenuto dentro la tabella così che si possa reperire il contenuto vero e proprio al di fuori della tabella.

Quindi, oltre a queste differenze tra VARCHAR e TEXT capiamo che TEXT è preferibile usarlo quando dobbiamo salvare informaticoi veramente lunghi e complessi.

Per esempio commenti, conversazioni, porzioni di HTML, elenchi, log

Continua a scoprire di più con questi articoli!

Lascia un commento

Questo sito potrebbe fare uso di cookie e siccome l'UE mi obbliga a fartelo presente, eccoti il classico banner dove puoi decidere come gestirli. Accetta Leggi di più