Si tengo una tabla con un campo que se declara como aceptar varchar (100) y luego insertar la palabra realidad "hola" la cantidad de almacenamiento real será utiliza en el servidor MySQL?
Mysql almacenará 5 bytes más un byte para la longitud. Si varchar es mayor que 255, almacenará 2 bytes para la longitud.
Tenga en cuenta que esto depende del juego de caracteres de la columna. Si el juego de caracteres es utf8, mysql requerirá hasta 3 bytes por carácter. Algunos motores de almacenamiento (es decir, memoria) siempre requerirán la longitud máxima de bytes por carácter para el juego de caracteres.
También habrá una inserción de resultado nulo en hay almacenamiento que se utiliza a pesar de que varchar (100) se declara?
Hacer una columna nulable significa que mysql tendrá que reservar un byte extra por hasta 8 columnas con nulos por fila. Esto se llama la "máscara nula".
¿Cuál es la respuesta, es consistente en diferentes implementaciones de bases de datos?
Ni siquiera es consistente entre los motores de almacenamiento de MySQL dentro!
Tenga en cuenta que los números son para tablas MyISAM. InnoDB u otros motores pueden tener otros requisitos. Consulte también: http://dev.mysql.com/doc/refman/5.1/en/storage-requirements.html – johannes
, por lo tanto, no importa cuánto límite hayamos establecido para varchar datatype. ¿derecho? –