【发布时间】:2012-03-21 00:32:30
【问题描述】:
可能重复:
Are there any disadvantages to always using nvarchar(MAX)?
varchar(max) everywhere?
鉴于 varchar 将始终存储它的实际字符数量,而不是其大小(例如,包含“Hello”的 varchar(10) 列将仅占用 5 个字节),为什么不将所有 VARCHAR 列创建为varchar(max)?
好的,存在索引问题,只能索引最大为 900 字节的列,所以为什么不将所有列创建为 varchar(900) 或所有不应该被索引为 varchar(max) 的列其他为 varchar(max)
【问题讨论】:
-
你的意思是非字符串列?例如,要对必须转换的整数列求和?不。
-
varchar的开销高于char,首先。如果您有一个 zipcode 列,您知道它总是会存储 5 个字符,那么为什么要声明它varchar(900)?没有意义。此外,列的大小是读者和数据库的信息来源。
标签: sql-server database sqldatatypes