2010-05-25 122 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