Acabo de leer la respuesta aceptada de this question, que me dejó con esta pregunta.¿Tiene algún sentido usar CHAR si tiene un VARCHAR en la misma tabla?
Aquí es una cita de esa respuesta:
"Pero ya ha etiquetado esta pregunta con MySQL, voy a mencionar una punta específica de MySQL: cuando su consulta genera implícitamente una tabla temporal, por ejemplo, mientras que la clasificación o GROUP BY
, VARCHAR
campos se convierten a CHAR
para obtener la ventaja de trabajar con filas de ancho fijo. Si usa muchos campos VARCHAR(255)
para datos que no necesitan ser tan largos, esto puede hacer que la tabla temporal sea muy grande. "
Según tengo entendido, la ventaja de CHAR
es que se obtienen filas de ancho fijo, por lo que no se descompone un VARCHAR
en la misma mesa? ¿Hay alguna ventaja de usar CHAR
cuando tiene un VARCHAR
en la misma tabla?
He aquí un ejemplo:
tabla 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)
);
Tabla sin CHAR
:
CREATE TABLE address (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
street VARCHAR(100) NOT NULL,
postcode VARCHAR(8) NOT NULL,
PRIMARY KEY (id)
);
¿La mesa con CHAR
realizar ninguna mejor que la mesa sin CHAR
, y si es así, en qué situaciones?
Posible duplicado - http://stackoverflow.com/questions/3408930/does-anyone-have-considerable-proof-that-char-is-faster-than-varchar – ocodo
La tabla 'char' utilizará menos espacio, porque no tiene un campo adicional para "longitud de la cadena de código postal" en cada registro. –
@Slomojo: Esa pregunta es sobre si hay alguna ventaja de 'CHAR' en absoluto y eso no es lo que estoy pidiendo. –