SQL 提供了三大通用字符类型:定长字符型 character(n)(简写为 char(n))、带长度上限的变长字符型 character varying(n)(简写为 varchar(n)),以及理论无物理长度限制的变长文本型 text。
在 PostgreSQL 的底层实现中,这三种类型在内部物理存储开销与查询性能上完全没有任何区别。使用 varchar(n) 的唯一目的是利用数据库引擎对超长字符进行强校验拦截。在不需要硬性截断长度的场景下,直接使用 text 是极其通用且性能最优的最佳实践。