disons que j'ai une colonne sur ma table définie comme suit:De combien d'espace disque avez-vous besoin pour stocker une valeur NULL en utilisant DB postgresql?
"MyColumn" smallint NULL
Enregistrement d'une valeur comme 0, 1 ou quelque chose d'autre devrait avoir besoin de 2 octets (1). Mais combien d'espace est nécessaire si je mets "MyColumn" à NULL? A-t-il besoin de 0 octet?
Existe-t-il des octets supplémentaires nécessaires à des fins d'administration ou autres pour chaque colonne/ligne?
(1) http://www.postgresql.org/docs/9.0/interactive/datatype-numeric.html
Ajout de colonnes sans valeur par défaut de grandes tables est généralement une opération rapide. Peut-il être lent lorsque vous franchissez le seuil entre 8 et 9 colonnes (ou 72 et 73 avec 'MAXALIGN = 8')? –
@ PatrickBrinich-Langlois: Oui, c'est une conséquence possible du mécanisme. La taille de la table physique augmente également plus que ce que l'on pourrait attendre dans ces cas. L'effet n'est pas nécessairement linéaire car d'autres facteurs tels que les tuples morts sont impliqués. La table ne se développe pas du tout si les bitmaps NULL existants (par ligne) ont de l'espace pour un autre bit NULL, ce qui est le cas courant. –