Postgres字符串数据类型存储分配

时间:2010-10-08 05:55:05

标签: postgresql

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

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

我理解字符(n)空白区域,因此您总是存储n个字节。

如果你的char(n)> 126个字符长,你有4个字节的开销(大概是为了存储长度),否则是1个字节的开销。

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

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

我用Google搜索,无法在任何地方找到此文档。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

这是您存储的数据长度,用于控制开销,而不是列的最大长度。所以你有一个字节的开销,直到你达到126。