2009-09-02 56 views
31

我打算將大量數據(日誌)存儲在碎片PostgreSQL表(每天表)中。我想壓縮其中一些以節省光盤上的一些空間,但我不想失去以通常方式查詢它們的能力。PostgreSQL支持透明壓縮表(片段)嗎?

不支持PostgreSQL這種透明壓縮和我在哪裏可以更詳細地瞭解了嗎?我認爲應該有一些着名的魔術名稱用於這樣的功能。

回答

37

是,PostgreSQL將自動爲您當他們具有一定規模的做到這一點。雖然壓縮應用於每個單獨的數據值,但不是在整個表級別。這意味着如果你有十億行很窄,它們將不會被壓縮。或者如果你有很多列只有一個很小的值,它們不會被壓縮。有關此方案的詳細信息,請參閱manual

如果你需要在全表層面,一個解決方案是創建爲您要壓縮這些表的表空間,並將其指向一個壓縮的文件系統。只要文件系統仍然服從fsync()和標準的POSIX語義,這應該是完全安全的。關於這個的細節在manual

1

還沒有具體你問什麼,但可能是一些幫助處理大型數據集是PostgreSQL支持表繼承,允許您按日期範圍分區的數據,例如,。或者其他一些邏輯。