2010-05-25 76 views
17

我在PostgreSQL中使用字符变化的数据类型。 我无法在PostgreSQL手册中找到这些信息。 什么是字符变化数据类型的字符的最大限制?PostgreSQL字符变长度限制

回答

19

参考documentation,没有对varchar(n)类型定义给出明确的限制。但是:

...
在任何情况下,可以存储最长可能 字符串是 约1 GB。 (即 将被允许对n中的数据类型的最大值 声明小于它 不会非常有用改变这种 ,因为与多字节字符 编码的字符数和 字节可以是完全不同的反正。 如果您希望存储长字符串 没有具体上限,用文字 或字符改变没有长度 符,而不是做了一个 任意长度的限制。)

还要注意这一点:

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

0

字符类型中的PostgreSQL

  • 字符改变(n)的,VARCHAR(N)=用限制可变长度
  • 字符(N),炭(N)=固定长度,空白填充
  • 文本=可变长度不受限制

根据您的问题,我建议你使用类型文本。该类型不需要字符长度。

另外,PostgreSQL提供了文本类型,它存储任意长度的字符串。虽然类型文本不在SQL标准中,但其他几个SQL数据库管理系统也有。

源:https://www.postgresql.org/docs/9.6/static/datatype-character.html