比方說,我有我的表中的列定義如下:使用postgresql DB需要多少磁盤空間來存儲NULL值?
"MyColumn" smallint NULL
存儲的值如0,1或別的東西應該需要2個字節(1)。但是,如果將「MyColumn」設置爲NULL,需要多少空間?它需要0字節嗎?
是否有一些額外的需要的字節用於管理目的或這樣的事情每列/行?
(1)http://www.postgresql.org/docs/9.0/interactive/datatype-numeric.html
添加列沒有默認值大的表通常是一個快速的操作。跨越8列和9列之間的閾值(或者使用'MAXALIGN = 8'時爲72和73')會慢嗎? – 2016-09-28 17:35:26
@ PatrickBrinich-Langlois:是的,這是該機制的一個可能後果。在這些情況下,物理表的大小也會超過人們所預期的。由於涉及死元組等其他因素,效果不一定是線性的。如果現有的NULL位圖(每行)有空間存放另一個NULL位,則表格根本無法生長,這是常見情況。 – 2017-07-11 14:51:25