2013-05-13 46 views
0

我設計一個數據庫,因爲我還沒有與舒適的數據類型,我想知道以下幾點:使用過VARCHAR(n)的VARCHAR PostgreSQL的

如果我不關心的長度一個字符的矢量,是否適合使用varchar? (即使字符串預料會相當短?)

到現在爲止我一直在使用文本(VARCHAR),當我需要存儲很長的字符串,但閱讀文檔和提問各地聽說PostgreSQL裏面如果提供了最大長度並且存儲的字符串長度小於它,則不存儲額外字節。 我想最大長度用於遠程設備無法承受大內存空間的情況。 能否同意或解釋?

回答

2

從文檔:

有使用空白填充型時是這三種類型之間沒有性能差異,除了增加的存儲空間,以及一些額外的CPU週期存儲到時檢查長度一個長度受限的列。雖然character(n)在其他一些數據庫系統中具有性能優勢,但PostgreSQL中沒有這種優勢;實際上字符(n)通常是三者中最慢的,因爲它存在額外的存儲成本。在大多數情況下,應該使用文本或字符變化。

+0

所以,你可以說「使用文本或varchar,即使預期存儲的字符串通常很短(並且可以很長),如果內存空間不是問題,那麼很好」? – user544262772 2013-05-13 15:30:54