Differenza tra Char e Varchar

Char vs Varchar
 

Char e Varchar sono comunemente usati tipi di dati di carattere nel sistema di database che sembrano simili anche se ci sono differenze tra loro quando si tratta di requisiti di archiviazione. Nella progettazione del database, vengono utilizzati molti tipi di dati. Di questi, i tipi di dati dei personaggi occupano un posto più importante in quanto vengono utilizzati per memorizzare molte informazioni rispetto ai numeri. I tipi di dati dei caratteri vengono utilizzati per memorizzare caratteri o dati alfanumerici nelle stringhe. Il tipo di set di caratteri del database viene definito durante la creazione del database. Di nuovo, tra questi tipi di dati di carattere, Char e Varchar sono quelli comunemente usati. Questo articolo spiega cosa sono questi due tipi di dati, char e varchar, e la differenza tra loro.

Cos'è Char?

La definizione ISO di char è a personaggio e il tipo di dati char è abituato a memorizzare un personaggio. Char (n) può memorizzare n dimensioni fisse di caratteri. Il numero massimo di caratteri che un char (n) può contenere è di 255 caratteri e una lunghezza di stringa deve essere un valore compreso tra 1 e 8000. Il char è il 50% più veloce di varchar e, pertanto, possiamo ottenere prestazioni migliori quando lavoriamo con char. Char utilizza l'allocazione della memoria statica durante l'archiviazione dei dati. Quando vogliamo memorizzare stringhe con una lunghezza fissa nota, è meglio usare il carattere. Ad esempio, quando si memorizzano 'Sì' e 'No' come 'Y' e 'N', possiamo usare il tipo di dati char. E anche quando memorizzi il numero della carta di identità nazionale di una persona con dieci caratteri, possiamo usare il tipo di dati come char (10).

Cos'è Varchar?

Come suggerisce il nome, varchar è chiamato a carattere variabile. Varchar è usato per memorizzare dati alfanumerici che hanno lunghezze variabili. Il numero massimo di caratteri che questo tipo di dati può contenere è di 4000 caratteri e la dimensione massima di archiviazione è 2 GB. La dimensione di archiviazione di varchar è la lunghezza effettiva dei dati più due byte. Varchar è più lento del char e utilizza l'allocazione dinamica della memoria quando si memorizzano i dati. Possiamo usare varchar quando si memorizzano dati come nomi, indirizzi, descrizioni, ecc. Non solo stringhe, ma anche tipi non string come i tipi di data, "12 marzo 2015", "12/03/2015" possono anche essere memorizzati in il tipo di dati varchar.

Qual è la differenza tra Char e Varchar?

• Sebbene char e varchar siano campi di dati di carattere, char è un campo di dati di lunghezza fissa e varchar è un campo di dati di dimensioni variabili.

• Char può memorizzare solo caratteri di stringa non Unicode di dimensioni fisse, ma varchar può memorizzare dimensioni variabili di stringhe.

• Char è migliore di varchar per i dati che cambiano frequentemente. Questo perché la fila di dati a lunghezza fissa non è soggetta a frammentazione.

• Char occuperà solo lo spazio fisso definito quando si dichiara la variabile. Ma varchar occuperà lo spazio in base ai dati inseriti e occuperà anche 1 o 2 byte come prefisso della lunghezza.

• Se i dati sono meno di 255 caratteri, viene assegnato 1 byte e se i dati sono più di 255 caratteri vengono riservati 2 byte. Se usiamo un char per memorizzare un flag di 'Y' e 'N' useremo un byte da memorizzare, ma quando useremo varchar ci vorranno due byte per memorizzare il flag includendo un byte extra come prefisso della lunghezza.

Sommario:

Char vs Varchar

Char e varchar sono i tipi di dati di carattere più utilizzati nei database. Char viene utilizzato per memorizzare una stringa con una lunghezza fissa mentre varchar viene utilizzato per memorizzare stringhe di lunghezza variabile. Per ottenere prestazioni migliori dai dati, è più importante scegliere i tipi di dati corretti per i campi delle tabelle nel database. È più conveniente utilizzare i tipi di dati più piccoli in grado di archiviare correttamente i dati, poiché occupano meno spazio dalla memoria.

Immagini per gentile concessione: Varchar via Wikicommons (Public Domain)