Postgresql

使用整數而不是間隔(一種類型)

  • March 10, 2014

我們的數據庫設計目前有一個interval僅儲存天數的列(沒有其他間隔類型),因此使用INT2( smallint) 代替interval. 參考文件。

優點:2 個字節而不是 12 個字節(我們有很多這樣的列)。

這種構想可以嗎,還是我忽略了什麼?

完全可以 - 特別是因為您可以直接在 Postgresinteger中 添加和減去。date

但是,int2可能並不比普通的**integer**. 確實,integer佔用 4 個字節而不是 2 個字節,但許多操作針對integer. 除其他外,integer是不帶小數點的數字的預設數字類型。因為int2您經常需要添加顯式強制轉換以避免錯誤。

此外,雖然我們討論的是單列,但您很可能在磁碟儲存或 RAM 方面一無所獲。這裡需要對儲存機制有更深入的了解,特別是填充數據對齊

如果您int2在一個表中有幾列(甚至您提到的“很多”)和/或知道您在做什麼,那麼int2獲得更好的機率。

詳細資訊:

為讀取性能配置 PostgreSQL

在 PostgreSQL 中計算和節省空間

如果有疑問,請執行測試並測量:

測量 PostgreSQL 表行的大小

引用自:https://dba.stackexchange.com/questions/60470