Qu'est-ce exactement ne nul ne de la performance et de stockage (espace) sage dans MySQL?
Par exemple:
TINYINT: 1 Octet TINYINT w/NULL 1 octet + en quelque sorte les magasins NULL?
Qu'est-ce exactement ne nul ne de la performance et de stockage (espace) sage dans MySQL?
Par exemple:
TINYINT: 1 Octet TINYINT w/NULL 1 octet + en quelque sorte les magasins NULL?
Cela dépend du moteur de stockage que vous utilisez.
En format MyISAM, chaque ligne d'en-tête contient un champ de bits avec un bit pour chaque colonne pour coder la valeur NULL état. Une colonne est NULL encore prend de la place, de sorte que NULLE de ne pas réduire l'espace de stockage. Voir http://forge.mysql.com/wiki/MySQL_Internals_MyISAM#Introduction
En InnoDB, chaque colonne a un "champ" décalage de départ dans la ligne d'en-tête, qui est un ou deux octets par colonne. Le haut de bits dans le champ décalage de début de est sur si la colonne est NULL. Dans ce cas, la colonne n'a pas besoin d'être stockées. Donc, si vous avez beaucoup de NULL est votre espace de stockage devrait être considérablement réduit. Voir http://forge.mysql.com/wiki/MySQL_Internals_InnoDB#FIELD_CONTENTS
EDIT:
Le NUL de bits sont une partie de la ligne des en-têtes, vous choisissez de ne pas les ajouter.
La seule façon que je peux imaginer les valeurs Null amélioration des performances est que InnoDB, une page de données peuvent s'adapter à plusieurs lignes si les lignes contiennent des valeurs Null. Si votre InnoDB tampons peut être plus efficace.
Mais je serais très surpris si cela donne un avantage de performance significative dans la pratique. Se soucier de l'effet de Zéros sur la performance est dans le domaine de la micro-optimisation. Vous devez vous concentrer votre attention ailleurs, dans les zones qui donnent une plus grande bang for the buck. Par exemple, en ajoutant bien choisi d'index ou de l'augmentation de la base de données de l'allocation de mémoire cache.
Jetez un oeil à mon post dans cette rubrique (en bref, la réponse est d'éviter NULL si possible)
dev.mysql.com/doc/refman/5.0/en/is-null-optimization.html
MySQL peut effectuer la même sur l'optimisation des nom_col EST NUL qu'il peut utiliser pour nom_colonne = constant_value. Par exemple, MySQL peut utiliser des index et des plages à la recherche pour les NULL NULL
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.