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

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

了解Postgres行大小

了解Postgres行大小

千巷貓影 2019-11-18 18:26:22
我有一個大型的(> 100M行)Postgres表,其結構為{整數,整數,整數,沒有時區的時間戳記}。我期望行的大小為3 *整數+ 1 *時間戳= 3 * 4 + 1 * 8 = 20字節。實際上,行大小為pg_relation_size(tbl) / count(*)= 52個字節。為什么?(不刪除表:pg_relation_size(tbl, 'fsm')?= 0)
查看完整描述

3 回答

?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

每行都有與之關聯的元數據。正確的公式是(假定為簡單對齊):


3 * 4 + 1 * 8 == your data

24 bytes == row overhead

total size per row: 23 + 20

或大約53個字節。實際上,我專門寫了postgresql-varint來幫助解決這個確切的用例問題。您可能想看一看類似的文章,了解有關re:元組開銷的更多詳細信息。


查看完整回答
反對 回復 2019-11-18
?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

RAM中的數據表示甚至需要更多空間。所以不,那里沒有壓縮。如果您有較長的字符串,它們將被壓縮并可能被“烘烤”。有關更多信息,請TOAST參見此處的手冊。因此,非常小的元組有相當大的開銷。盡管如此,對表的操作通常還是非??斓模圆灰萑脒^早地對表進行非規范化的誘惑。如有疑問,請運行性能測試

查看完整回答
反對 回復 2019-11-18
  • 3 回答
  • 0 關注
  • 845 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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