可能是重复问题:
varchar(500)与varchar(8000)相比有什么优势吗?
在SQL Server中,我们可以指定字段类型为varchar(n)
:
存储大小是输入数据的实际字节长度,而不是n个字节。
通常,在规划数据库结构时,我尝试想象要存储在这些 varchar
字段中的最大字符串长度,然后设置该想象大小+一些备份用于 varchar
字段。有时可能会发生最初提供的空间不足以容纳字段的情况,那么我需要增加长度。
但实际上,将 varchar
字段限制在某个值上是否值得,而不是仅设置诸如 varchar(5000)
或甚至 varchar(max)
之类的内容,这将100%适合情况?当我限制那个 n
长度时,是否存在页面组织或SQL Server索引组织的任何优势呢?
更新
这是我的意思(优点):https://dev59.com/-FXTa4cB1Zd3GeqP0lnT#5353196
是的,查询优化器可以猜测一页中适合的行数,如果您有很多超过必要大小的 varchar 字段,则 SQL Server 可能会在内部猜测错误的行数。
上述内容是否正确?还有其他优点吗?