powiedzmy mam kolumny na moim stole zdefiniowane następujące:Ile miejsca na dysku potrzeba do przechowywania wartości NULL przy użyciu postgresql DB?
"MyColumn" smallint NULL
Przechowywanie wartości jak 0, 1 lub coś innego powinny potrzebować 2 bajty (1). Ale ile miejsca potrzeba, jeśli ustawię "MyColumn" na NULL? Czy będzie potrzebować 0 bajtów?
Czy są jakieś dodatkowe potrzebne bajty do celów administracyjnych lub takie rzeczy dla każdej kolumny/wiersza?
(1) http://www.postgresql.org/docs/9.0/interactive/datatype-numeric.html
Dodawanie kolumn bez wartości domyślnej dla dużych tabel jest zwykle szybkie działanie. Czy może być powolny, gdy przekroczysz próg między 8 a 9 kolumnami (lub 72 i 73 z "MAXALIGN = 8")? –
@ PatrickBrinich-Langlois: Tak, to jest możliwa konsekwencja mechanizmu. Fizyczny rozmiar stołu również rośnie w większym stopniu niż można by oczekiwać w tych przypadkach. Efekt nie musi być liniowy, ponieważ zaangażowane są inne czynniki, takie jak martwe krotki. Tabela nie rośnie w ogóle, jeśli istniejące bitmapy NULL (w jednym wierszu) mają miejsce na kolejny bit NULL, co jest częstym przypadkiem. –