如果我在Server中有一个列,我知道它通常大约是10个字符。让varchar(50)覆盖我的所有案例有什么坏处吗?varchar(n)和varchar(n+x)之间在效率、存储、计算/查询拉力方面的任何损失
Note:这不是varchar(n)和varchar(MAX)之间的比较。关于这一点,我们已经提出了另一个问题。
发布于 2020-06-24 15:01:51
是的,过度调整“以防万一”的可能导致性能问题,即内存授权太高,因为它们是基于假设每个值都是半填充的。
但这取决于你如何平衡这种影响和其他潜在问题:
您应该做什么取决于您对这将永远是varchar(10)有多大的信心。如果您不太自信,可以考虑将其设置为varchar(20)或varchar(32),但将其限制在当前要求的10 (使用params插入过程和实际约束)。如果需求稍后发生变化,您只需删除约束,更改参数定义,然后应用程序就可以按照自己的速度进行更改,从而开始支持更长的值。
https://stackoverflow.com/questions/62556971
复制相似问题