diferencia entre los requisitos de almacenamiento de la base de datos de cadenas vacías y nulas

Dejemos de lado conceptualmente el significado de cadena nula y vacía, me gustaría saber cuál es beneficioso en términos de almacenamiento.

preguntado el 22 de mayo de 12 a las 19:05

Estoy principalmente interesado en mysql, pero la descripción general también está bien. -

Gracias, lo haré. Me preguntaba qué es -

Quise decir otras preguntas, para que ayude a la comunidad. -

1 Respuestas

Las columnas que pueden contener valores NULL generalmente usan un bit adicional por fila para marcar si es NULL o no. Sin embargo, esto puede depender del sistema de base de datos; SQLite, por ejemplo, tiene tipos de datos para cada valor, por lo que los valores nulos difieren de los valores de cadena en un nivel más fundamental.

Para MySQL, considere este en el manual:

La longitud de fila esperada para las filas de tamaño dinámico se calcula mediante la siguiente expresión:

3
+ (number of columns + 7) / 8
+ (number of char columns)
+ (packed size of numeric columns)
+ (length of strings)
+ (number of NULL columns + 7) / 8

contestado el 22 de mayo de 12 a las 19:05

Pero para almacenar una cadena que es principalmente un char o varchar, tenemos algunos gastos generales en las bases de datos de almacenamiento de filas. ¿Consideraste eso en tu razonamiento? - Aman Profundo Gautama

Si es un VARCHAR, probablemente necesitará uno o dos bytes para indicar el tamaño del valor. Además de reunir registros a esto necesitarás un bit para saber si es NULL o no. Tiene razón en que debería ser posible guardar SOLO el bit NULL para esas columnas y omitir los bytes de longitud de cadena, pero no sé de qué manera es más común. Para filas de longitud fija (como en algunas tablas MyISAM) realmente necesitará ese bit extra. - Emil Vikström

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.