Postgresql
如何將舊數據移至廉價硬碟
我有一個相當大的 PostgreSQL 數據庫(帶有時間刻度外掛)。現在它在 SSD 上消耗大約 500Gb。大多數數據都是時間序列的形式。在大多數情況下,幾個月前的數據並不是很有趣。
我的想法是將這些數據移動到便宜的 SATA 硬碟驅動器上,而不是購買更昂貴的 SSD。這是一個好主意,是否有一些好的實踐來實施?
我的幼稚實現是:
保留兩個數據庫(或在便宜的 HDD 上創建一個表空間)。每隔幾個小時將數據從“快速”(SSD)數據庫提取到“慢速”數據庫(HDD)。每隔幾天,從慢速數據庫中刪除數據。這是一個好主意嗎?我很高興聽到一些回饋和更好的建議。
這是一個更好的架構:
- 在慢速驅動器上創建一個新的表空間。
- 在該新表空間上設置儲存參數
seq_page_cost
或random_page_cost
更高,以便 PostgreSQL 優化器知道磁碟速度較慢。- 按時間範圍對大時間序列表進行分區(對所有受影響的表使用相同的邊界),以便最終每個分區都有幾十個分區。
- 將舊分區移動到慢速表空間。
然後,您仍然可以訪問所有數據。
使用 PostgreSQL v11 或更高版本進行分區。