为了账号安全,请及时绑定邮箱和手机立即绑定

使用数据类型“text”存储字符串有什么缺点吗?

使用数据类型“text”存储字符串有什么缺点吗?

蛊毒传说 2019-07-13 15:44:45
按Postgres文件,它们支持字符数据的3种数据类型:character varying(n), varchar(n)  variable-length with limit character(n), char(n)             fixed-length, blank padded text                              variable unlimited length在我的应用程序中,我遇到了一些令人不快的场景,其中插入/更新查询失败,因为要插入的文本超出了varchar(n)或char(n)限制。对于这种情况,将这些列的数据类型更改为text就够了。我的问题是:如果我们将每个字符存储列的数据类型概括并更改为text,在性能/内存方面有什么缺点吗?如果具有数据类型的列text每次存储10个或更少的字符,我是否应该选择text或varchar(10)?如果我去text缺点是什么?
查看完整描述

3 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

您提到的所有数据类型都使用相同的内部表示(比较有名)。struct varlena)

这个CHARVARCHAR数据类型只需向其添加长度检查,并且(在CHAR),具有不同的空格填充语义。

你可以用TEXT无论以上任何事情对你的逻辑都是重要的,都是安全的。


查看完整回答
反对 回复 2019-07-13
?
弑天下

TA贡献1818条经验 获得超8个赞

从链接到的页面中:

“这三种类型除了在使用空白填充类型时增加存储空间,以及在存储到长度受限列时需要额外的CPU周期来检查长度之外,性能没有差异。在其他数据库系统中,字符(N)具有性能优势,但PostgreSQL没有这种优势;事实上,由于存储成本增加,字符(N)通常是三种类型中最慢的。在大多数情况下,应该使用文本或字符变化。”

使用textPostgres中的数据类型。

但是,您应该考虑是否真的希望将大量文本存储在数据库中。把它当作varchar但是,使用更高的限制可以防止您无意中将大量数据存储在数据库中。


查看完整回答
反对 回复 2019-07-13
  • 3 回答
  • 0 关注
  • 1301 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信