小编典典

Postgres SQL中的字符串字段长度

sql

我在SQL数据库中有一个字符串,表示一个URL。有些网址很短,有些很长。我真的不知道这是我可能遇到的最长的URL,所以为了安全起见,我会采用较大的值,例如256或512。

当我定义最大字符串长度时(例如,使用SQLAlchemy):

url_field = Column(String(256))

即使实际的字符串较短,这是否也会占用每一行的空间(存储空间)?

我假设这与实现细节有关。我正在使用postgreSQL,但对sqlite和mysql也很感兴趣。


阅读 772

收藏
2021-04-07

共1个答案

小编典典

通常,数据库存储引擎可以完成许多您不期望的事情。但基本上,有两种文本字段可以提示内部将发生什么。

char和varchar。Char将为您提供一个固定的字段列,并且根据sql会话中的选项,您是否会收到空格填充的字符串。Varchar用于不超过一定最大长度的文本字段。

可以将Varchar字段作为指针存储在该块的外部,以便该块在查询中保持可预测的大小-但这是实现细节,并且可能因数据库而异。

2021-04-07