【问题标题】:Varchar in forms of bytes [duplicate]字节形式的 Varchar [重复]
【发布时间】:2013-09-25 04:11:19
【问题描述】:

在我们的一个项目中,我们的经理坚持以字节为单位使用 varchar,例如 varchar(8)、varchar(16)、varchar(32)、varchar(64) 等。

如果我们可以猜测大小,这是否比使用 varchar(10)、varchar(11) 等更好,尽管我们可能不知道实际大小?

【问题讨论】:

标签: sql sql-server database-design


【解决方案1】:

假设您想在表格中存储产品代码。目前,您拥有的所有产品代码都是 5 个字符或更少 - 但这可能会在未来发生变化。你永远不会看到它超过 10,但谁知道呢?

您可以将其创建为 varchar(10),但如果您错了,那么在将来的某个时间点您可能需要更改它。如果创建为varchar(20),则问题不存在;

那么您是否在浪费空间将其声明为 varchar(20) 而不是 varchar(10)?不,因为 SQL Server 将只使用列包含的字符数(此时为 5):所有数据类型 varchar(n) 真正的意思是“可变长度文本,最多 n 个字符长”。

因此,只要定义的长度至少与您可预见的需要一样多,我认为定义的大小到底是多少并不重要。

【讨论】:

  • 谢谢约翰,我想我正在寻找更详细的性能比较和参考,上面的评论提供了。
猜你喜欢
  • 1970-01-01
  • 2020-07-21
  • 1970-01-01
  • 2015-10-31
  • 2018-06-07
  • 1970-01-01
  • 1970-01-01
  • 2020-05-10
  • 2011-11-02
相关资源
最近更新 更多