我有一个问题,我有一个数据库中的一列,可能是从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. 的Verilog:分配参数长度
- 3. 匹配长度与相同长度的字符串列表
- 4. 是否可以为unix中的列分配特定的长度?
- 5. 多维阵列,不同的行的分配用malloc长度
- 6. 不同列表长度索引的Python变量分配
- 7. Freemarker的分配列表长度到局部变量
- 8. 两个Python列表的匹配长度
- 9. 分配在可变长度表
- 10. 不同长度的分类序列
- 11. 球拍 - 如何将长度分配到列表
- 12. 馏分长度
- 13. Elm:匹配长度列表!= n
- 14. CSS - 按长度将长列表分成若干列
- 15. 将可变长度字符串分配给固定长度字符串
- 16. 找到分区的长度
- 17. 最长的子序列的长度
- 18. 分配的内存增长
- 19. 将列表拆分成平衡长度的部分
- 20. Excel VBA分割列以一定的长度分成多行
- 21. 比较不等长度的两个列表并删除部分匹配?
- 22. SAS显示比列长度长的值
- 23. 更改列长度
- 24. 休眠列长度
- 25. Prolog列表长度
- 26. 转换可变长度列表分成边列表的igraphř
- 27. 自动截断分配的字符串到字段的长度?
- 28. 为字符串的实际长度分配足够的空间
- 29. 获取动态分配的数组的长度用C
- 30. 长度阵列阵列
有两件事情:1)大小超过2K的数据是['TOAST'] [1]'编码,并可能使用LZ压缩算法进行压缩; 2)性能损失可忽略不计,因为输入行的值是已知的。 'tuple_size == large_number'是一个时钟周期,一个指针加载......与IO甚至内存访问相比,它甚至不是关系数据库的噪声。 – Sean 2011-06-02 18:39:48