我有一個問題,我有一個數據庫中的一列,可能是從10到10,000個字節的大小。你知道PostgreSQL是否支持稀疏數據(即它是否總是在列的每個條目之前留出10,000個字節......或者只有每個條目所需的空間)?PostgresSQL分配的列長度
0
A
回答
1
Postgres將存儲長變長類型在擴展的空間存儲稱爲TOAST。
在字符串的情況下,它保持內聯up to 126 bytes(可能意味着多字節東西少於126個字符),然後將其發送到外部存儲。
你能看到的數據是使用psql的存儲:
\dt+ yourtable
順便說一句,注意,從Postgres的角度來看,是絕對聲明一個列的類型爲varchar
之間沒有差異(相對於存儲)或varchar(large_number)
- 它將以完全相同的方式存儲。但是,由於字符串長度檢查,使用varchar(large_number)
的性能損失非常小。
0
使用varchar
或text
類型 - 這些僅使用實際需要來存儲數據(加2個字節的小的開銷爲每個值存儲長度)
相關問題
- 1. 確定陣列分配的長度
- 2. PostgresSQL分組
- 3. 的Perl - 分配分裂()來散列切片的輸出 - 檢測長度失配
- 4. 分割系列串長度
- 5. 的Verilog:分配參數長度
- 6. 匹配長度與相同長度的字符串列表
- 7. 是否可以爲unix中的列分配特定的長度?
- 8. 多維陣列,不同的行的分配用malloc長度
- 9. 分配變量到列表元素,不知道它的長度
- 10. 不同列表長度索引的Python變量分配
- 11. Freemarker的分配列表長度到局部變量
- 12. 兩個Python列表的匹配長度
- 13. wxPython的 - 長度的顏色列表不匹配長度間隔範圍列表
- 14. 分配在可變長度表
- 15. 如何過濾列部分的長度?
- 16. 不同長度的分類序列
- 17. R bin是列長度的百分比
- 18. 球拍 - 如何將長度分配到列表
- 19. 將列表中的元素分配到特定長度的列表中
- 20. 餾分長度
- 21. Elm:匹配長度列表!= n
- 22. CSS - 按長度將長列表分成若干列
- 23. 長度列的,由
- 24. 限制匹配的長度
- 25. 隊列長度
- 26. 基於列表長度的匹配模式匹配
- 27. 如何將長度拆分爲子長度的組合(帶有特殊允許的子長度的列表)
- 28. 列表的長度是五,但我想列表的長度150
- 29. 分手了長度
- 30. 將可變長度字符串分配給固定長度字符串
有兩件事情:1)大小超過2K的數據是['TOAST'] [1]'編碼,並可能使用LZ壓縮算法進行壓縮; 2)性能損失可忽略不計,因爲輸入行的值是已知的。 'tuple_size == large_number'是一個時鐘週期,一個指針加載......與IO甚至內存訪問相比,它甚至不是關係數據庫的噪聲。 – Sean 2011-06-02 18:39:48