2013-05-13 88 views
0

我设计一个数据库,因为我还没有与舒适的数据类型,我想知道以下几点:使用过VARCHAR(n)的VARCHAR PostgreSQL的

如果我不关心的长度一个字符的矢量,是否适合使用varchar? (即使字符串预料会相当短?)

到现在为止我一直在使用文本(VARCHAR),当我需要存储很长的字符串,但阅读文档和提问各地听说PostgreSQL里面如果提供了最大长度并且存储的字符串长度小于它,则不存储额外字节。 我想最大长度用于远程设备无法承受大内存空间的情况。 能否同意或解释?

回答

2

从文档:

有使用空白填充型时是这三种类型之间没有性能差异,除了增加的存储空间,以及一些额外的CPU周期存储到时检查长度一个长度受限的列。虽然character(n)在其他一些数据库系统中具有性能优势,但PostgreSQL中没有这种优势;实际上字符(n)通常是三者中最慢的,因为它存在额外的存储成本。在大多数情况下,应该使用文本或字符变化。

+0

所以,你可以说“使用文本或varchar,即使预期存储的字符串通常很短(并且可以很长),如果内存空间不是问题,那么很好”? – user544262772 2013-05-13 15:30:54