亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在PostgreSQL中存儲未使用的數據塊的最有效方法

在PostgreSQL中存儲未使用的數據塊的最有效方法

慕標5832272 2022-08-03 16:27:45
表中只有幾列,大約有 100 多個基于列的數據,只需存儲這些數據,以便以后導出到其他源。此數據(除了提到的前幾列之外)不需要索引/過濾或以某種方式操作。沒有查詢,可以以任何方式檢查此數據。唯一的問題是,該應用層可以檢索具有其他未使用工作負載的整行,并將其反序列化以進一步轉換為外部格式。有一個想法是將整個類序列化到這個字段中,但后來我們意識到,這對數據大小來說是一個巨大的開銷(因為額外的java類元數據)。因此,它是一個簡單的鍵值數據(如關系模型所示,鍵集是靜態的)。在數據庫性能(50+ TB存儲)方面,在PostgreSQL中存儲這些額外的未使用數據的正確方法和數據類型是什么?也許值得省略密鑰數據并僅將值存儲為數組(因為鍵是靜態的),并在應用程序層按索引反序列化后獲取值(因為首先是數據庫性能)?
查看完整描述

1 回答

?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

a_horse_with_no_name,非常感謝,但數據類型真的很棘手。jsonb

就包含 的單個元組所需的字節量而言,必須始終牢記 - 格式名稱的大小。因此,如果有人想要重新發明輪子并將大名稱存儲為單個索引 - 它將減小整體元組大小,但它并不比將所有數據存儲為典型的關系表字段更好,因為算法適用于這兩種情況。jsonbkeyjsonkeybyteTOAST

另一種方法是對單個字段使用存儲方法。在這種情況下,將在緩存中保留更多元組,因為無需將整個數據保存在內存中。EXTERNALjsonbPostgreSQLjsonb

無論如何,我最終在字段類型中組合了+(因為在我們的系統中不需要查詢字段中的數據):protobufzlibbyteabytea

Uber 對 protobuf + zlib 的研究


查看完整回答
反對 回復 2022-08-03
  • 1 回答
  • 0 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號