Postgresql
使用整數而不是間隔(一種類型)
我們的數據庫設計目前有一個
interval
僅儲存天數的列(沒有其他間隔類型),因此使用INT2
(smallint
) 代替interval
. 參考文件。優點:2 個字節而不是 12 個字節(我們有很多這樣的列)。
這種構想可以嗎,還是我忽略了什麼?
完全可以 - 特別是因為您可以直接在 Postgres
integer
中 添加和減去。date
但是,
int2
可能並不比普通的**integer
**. 確實,integer
佔用 4 個字節而不是 2 個字節,但許多操作針對integer
. 除其他外,integer
是不帶小數點的數字的預設數字類型。因為int2
您經常需要添加顯式強制轉換以避免錯誤。此外,雖然我們討論的是單列,但您很可能在磁碟儲存或 RAM 方面一無所獲。這裡需要對儲存機制有更深入的了解,特別是填充和數據對齊。
如果您
int2
在一個表中有幾列(甚至您提到的“很多”)和/或知道您在做什麼,那麼int2
獲得更好的機率。詳細資訊:
如果有疑問,請執行測試並測量: