【问题标题】:MySQL: varchar(64) vs. varchar(255), is there a difference for small strings?MySQL:varchar(64) 与 varchar(255),小字符串有区别吗?
【发布时间】:2021-11-17 06:50:49
【问题描述】:

假设所有环境(引擎、字符集等)都相同,将字符串“hello”存储在 varchar(64) 或 varchar(255) 列中是否有区别? (例如,引擎自动为最大长度分配空间或填充字符串)

为了提供一些上下文,我有一个案例,我将在 99% 的时间内存储长度小于 64 的文本,而在剩余 1% 的时间内存储长度在 64 到 255 之间的文本。

现在,如果 varchar(255) 的开销很大,那么我将为长字符串的情况创建一个单独的表,但如果没有任何开销,那么我只会将该列声明为 varchar(255)。

我能找到的最接近的答案是以下问题: How much real storage is used with a varchar(100) declaration in mysql?

但是它并没有准确回答我的问题。

【问题讨论】:

  • 其他问题的哪些部分没有得到解答?
  • 它没有说字符串是否会被填充到定义的长度,这正是我所关心的。
  • 你为什么关心这个?另外,请通过编辑为您的问题添加所有说明
  • 另外,对“较长”文本使用单独的表格听起来不像是好的数据库设计。您将如何在这样的设置中高效地运行查询?
  • 我很在意,因为该表将有数百万行,磁盘存储可能会受到严重影响,这意味着成本更高

标签: mysql storage varchar


【解决方案1】:

没有。有些人只是对所有短字符串列使用VARCHAR(255)。对于CHAR 列,所有字符串都将用空格填充,直到定义的长度。

【讨论】:

  • 感谢您的快速回答。到时我会接受的。
猜你喜欢
  • 2021-03-28
  • 2011-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多