我有一个问题,我有一个数据库中的一列,可能是从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