1

這是一個簡單的問題。我很好奇在Rails + PostgreSQL中設置列的默認值是否需要額外的空間(而不是將默認值設置爲零)。Rails + PostgreSQL:根據數據庫空間設置列的默認值是否受傷?

我也很好奇,如果這自然會導致結論是否使用rails(全部爲nils)創建空記錄是否與充滿數據的行將佔用相同的空間。

我會假設這非常依賴數據庫實現,但我只對PostgreSQL數據庫(9.1+)感興趣。但是當我尋找具體的實現細節時,我迷失了方向。感謝您的幫助..

+0

可能重複[?難道空列在PostgreSQL中佔據更多的空間(http://stackoverflow.com/questions/12145772/do-nullable-columns -occupy-additional-space-in-postgresql) –

回答

0

設置默認值只是目錄表pg_attributes中的一個屬性。

但是與表格行相比,NULL通常會增加磁盤空間。 NULL值存儲在稱爲「NULL位掩碼」的特殊結構中,並且每列需要一位。
因此,具有NULL值的行在磁盤上佔用的空間少於具有(虛擬)值的行。

它實際上更復雜。查找信息和鏈接,這些相關答案:
Do nullable columns occupy additional space in PostgreSQL?
Calculating and saving space in PostgreSQL

+0

非常有用的鏈接。謝謝! – yara