【发布时间】:2017-07-28 15:50:45
【问题描述】:
我正在 PostgreSQL 上创建一个表,我知道该文件是 char 数据类型,但尽管我知道它最多可以存储 100 个字符,但我想知道下一个:
字符或字符变化而不是文本的优点是什么?
我认为我知道的
如果我没记错的话,字符是固定长度保留在内存中,而varchar是可变的,与Text数据类型相同。最后一个能够存储 1 GB 的数据,但最小为 0 kb,与 varchar 和 char 的最小值相同。
假设情况
然后,我猜我很懒惰,尽管我知道最多可以存储 100 个字符,但我使用文本,因为如果将来需要,它可以存储这 100 个字符甚至更多。如果不使用适当的数据类型,我会失去哪些特征?
【问题讨论】:
-
你的意思是“代替”,而不是“在前面”?
-
我希望固定 char 列的阅读速度最快。
-
@SergioTulentsev 不一定:stackoverflow.com/q/31079819/479863。不确定这是否算作重复。
-
@muistooshort:啊,我当时在想mysql。 IIRC,那是真的。
-
没有太多我们可以添加到链接(优秀)的答案,但更多的上下文:
varchar/character varying是 ANSI 友好的,但不是缺少长度约束的表单.text是 SQL 的常用扩展,但并非所有供应商都支持它。此外,在 PostgreSQL 中,text是字符串类型类别的默认(“首选”)类型。见:select * from pg_type where typcategory = 'S'