Ho appena letto la risposta accettata di this question, che mi ha lasciato questa domanda.C'è qualche punto nell'usare CHAR se si ha un VARCHAR nella stessa tabella?
Ecco una citazione da quella risposta:
"Ma dal momento che hai contrassegnato questa domanda con MySQL, citerò una punta MySQL specifico: quando la query genera implicitamente una tabella temporanea, per esempio, mentre l'ordinamento o GROUP BY
I campi VARCHAR
vengono convertiti in CHAR
per ottenere il vantaggio di lavorare con righe a larghezza fissa. Se si utilizzano molti campi VARCHAR(255)
per dati che non devono essere così lunghi, ciò può rendere la tabella temporanea molto grande. "
A quanto ho capito, il vantaggio di CHAR
è che si ottengono righe a larghezza fissa, quindi non è lo stesso VARCHAR
nella stessa mensa? Ci sono dei vantaggi nell'usare CHAR
quando hai uno VARCHAR
nella stessa tabella?
Ecco un esempio:
Tavolo con CHAR
:
CREATE TABLE address (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
street VARCHAR(100) NOT NULL,
postcode CHAR(8) NOT NULL,
PRIMARY KEY (id)
);
tabella senza CHAR
:
CREATE TABLE address (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
street VARCHAR(100) NOT NULL,
postcode VARCHAR(8) NOT NULL,
PRIMARY KEY (id)
);
disposta la tabella con CHAR
eseguire una migliore rispetto al tavolo senza CHAR
e se sì, in cosa situazioni?
Possibile duplicato - http://stackoverflow.com/questions/3408930/does-anyone-have-considerable-proof-that-char-is-faster-than-varchar – ocodo
Il tavolo 'char' utilizzerà meno spazio, perché non ha un campo aggiuntivo per "lunghezza della stringa del codice postale" in ogni record. –
@Slomojo: Quella domanda riguarda se esiste qualche vantaggio di 'CHAR' e non è quello che sto chiedendo. –