背景
1、産品的問題點
- PG 沒有block level壓縮
2、問題點背後涉及的技術原理
- PG 隻有行級别壓縮, 當1條記錄壓縮後的長度超過1/4 block size(約2000位元組)(由參數 TOAST_TUPLE_THRESHOLD 控制門檻值) 時, PG 會将其變長字段類型存儲到TOAST切片.
- 這種行級别的壓縮方式壓縮比較低
3、這個問題将影響哪些行業以及業務場景
- 對存儲的成本較為敏感的業務, 例如IOT, 時序, 冷資料, 冷倉庫等.
4、會導緻什麼問題?
- 壓縮比低, 需要使用更多的存儲空間, 導緻存儲成本較高
5、業務上應該如何避免這個坑
- 更換産品,
- 或使用FDW, 将資料存儲在外部, 例如OSS_FDW将資料存儲在OSS對象存儲内, 使用外部廉價、高壓縮比存儲.
6、業務上避免這個坑犧牲了什麼, 會引入什麼新的問題
- 管理成本增加
- 使用oss_fdw外部存儲, 不支援索引, 查詢速度更慢.
7、資料庫未來産品疊代如何修複這個坑
- 核心層支援BLOCK級别的壓縮,
- 使用壓縮效率、壓縮比更高的算法
- 使用列存儲, 存儲同類的資料, 比行+塊級别壓縮比更高.