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

  在分析一个场景时,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

 

posted on 2020-02-26 22:13  lnlvinso  阅读(22012)  评论(0编辑  收藏  举报