postgres数据库varchar类型的最大长度

踩风火轮的乌龟 2020-02-26

在分析一个场景时,postgres中的一个字段存储很长的字符串时,是否可能存在问题。被问到varchar类型的最大长度,不是很清楚。

       查了一下,记录一下。

名字描述
character varying(n), varchar(n)变长,有长度限制
character(n), char(n)定长,不足补空白
text变长,无长度限制

简单来说,varchar的长度可变,而char的长度不可变,对于postgresql数据库来说varchar和char的区别仅仅在于前者是变长,而后者是定长,最大长度都是10485760(1GB)

varchar不指定长度,可以存储最大长度(1GB)的字符串,而char不指定长度,默认则为1,这点需要注意。

text类型:在postgresql数据库里边,text和varchar几乎无性能差别,区别仅在于存储结构的不同。

对于char的使用,应该在确定字符串长度的情况下使用,否则应该选择varchar或者text。


        其他人说的最大长度是10485760,我不是DBA,也没做过这个实验。但是有疑问,编码格式不为UTF-8时,是否还是10485760?

        text类型是挺好用的,假如需要存储一个复杂且结构可能会变化的数据,搞成json字符串存储到text里也是很好的。感觉成了MongoDB

相关推荐