【问题标题】:Does the maximum length varchar record impact on storage for other records with less characters in the field? [duplicate]最大长度 varchar 记录是否会影响字段中字符较少的其他记录的存储? [复制]
【发布时间】:2017-02-01 12:16:49
【问题描述】:

我将一列添加到数据类型/长度为 varchar(500) 的表中。然后我将 3 条记录添加到该表中。两条记录在新列中的长度为 5,第三条的长度为 500。假设所有其他列的三个记录的值相同,它们现在是否都占用磁盘上的相同空间或者是第三行占用更多空间?

如果是前者,在所有字符串字段类型中将 varchar(N) 中的 N 设置为一个非常高的数字有什么害处,在某些时候可能需要利用所有 N?如果一个流氓值使用 N 个字符,我可以理解设置 N 是保守的,其效果是显着增加表中所有其他记录的存储分配。但是如果它只影响一个记录,那么将N设置得很高有什么害处呢?

我在网上阅读的所有内容都说在设置 N 时要保守,但我很难理解为什么。

【问题讨论】:

标签: sql-server varchar


【解决方案1】:

Varchar 非常适合节省空间,因为它不存储尾随空格。

当您开始在 varchar 字段上执行大量 UPDATE 时,就会失败。 更新可能会触发页面拆分,并由于页面填充度较低而导致存储效率降低。

因此,大小变化越大,UPDATE 事务对多条记录的潜在影响就越大。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多