【发布时间】:2017-10-12 05:46:37
【问题描述】:
这里有新的 .net 程序员。作为一名新程序员,我总是在工作时尽量遵循最佳实践。今天我从 SQL Server 开始,我问同事我应该为用户描述列使用哪种数据类型。他告诉我使用nvarchar(MAX),我做到了,效果很好。
但是,对于这种情况,我们是否应该始终使用nvarchar(max)?还是分配500个字符更好?
我问是因为我google了一下,看到有人说nvarchar(max)为列保留了大量内存,最终可能会降低数据库的性能。
编辑:很棒的答案伙计们,我现在很清楚这个话题。没有 unicode 的东西,因此我会选择 varchar(600)
【问题讨论】:
-
描述可以超过 4,000 个字符吗? UI 可以显示多少或强制执行最大长度是否有任何限制?您希望最多允许 2GB 条目吗?
-
关于 varchar(max) 需要考虑的一点是它有一些缺点,例如不能索引 varchar(MAX),尽管可以索引 varchar(N)。此外,带有 varchar(MAX) 的表不能使用新的 ColumnStore 索引类型,这对于报告服务器等很有用。 stackoverflow.com/questions/7141402/why-not-use-varcharmax
-
@MartinSmith 我在考虑最多 600-800 个字符。
-
那么不要使用
max。它们比非最大数据类型效率低,并且有更多限制。仅当您确实需要额外长度时才应使用它们。 -
很棒的答案伙计们,我现在很清楚这个话题了。没有 unicode 的东西,因此我会选择 varchar(600)
标签: sql .net sql-server