2010-10-08 25 views
1

我们正在运行Postgres 8.3.3,文档(http://www.postgresql.org/docs/8.3/static/datatype-character.html)给我留下了一些关于如何分配存储空间的问题。Postgres字符串数据类型存储分配

为了讨论的目的,我想坚持假设一个字符= 1个字节。

我明白,字符(n)空白垫,所以你总是有n个字节存储。

如果您的char(n)长度大于126个字符,则开销为4个字节(可能用于存储长度),否则开销为1个字节。

我对varchar(n)会发生什么感兴趣。

如果我使用varchar(255)并在其中存储4个字符的字符串,我是否有4个字节的字符串& 4个字节开销,还是只有一个字节开销,直到我达到126个字符的限制?

我已经使用Google搜索并找不到任何记录。

有什么想法?

回答

2

这是控制开销的数据长度,而不是列的最大长度。所以你有一个字节的开销,直到你打到126.

+0

谢谢Magnus。这回答我的问题...锦上添花是否这是记录在任何地方...... – azp74 2010-10-11 01:24:03

+0

@nos - 问题是关于varchar,而不是char。 – 2010-10-11 05:36:08

+0

@ apz74 - 该页面实际上有它。当然不是所有这些都很容易从中得到... – 2010-10-11 05:38:06

相关问题