NVarchar(MAX)用于短字符串

3 sql database nvarchar

我感兴趣的是NVarchar(MAX)一个好的数据类型是我想存储长度为1-50个字符的短unicode字符串,但是大多数(超过90%)长5-10个字符?

该列不会用于比较和排序查询.它可能会作为包含列添加到索引中.预计行数 - 超过10M.

有什么建议?先感谢您!

DCN*_*YAM 6

为什么要对这样的短字符串使用nvarchar(MAX)?如果您知道最大长度为50个字符,请将其设为nvarchar(50).

另外,我不认为nvarchar(MAX)列可以包含在索引中,因为它会破坏900字节的限制.

  • 我认为你误解了MAX长度说明符.这并不指示DB仅存储字符串的实际长度.相反,它告诉DB你可以存储允许的最大字符数(我相信2 Gig).nvarchar(和varchar)数据类型本质上只存储该字段中数据的实际字符串长度.nvarchar(50)只是表示您可以将数据最多存储50个字符,但不能存储.但是,如果存储少于50,则不会浪费任何空间. (6认同)