这里是新的 .net 程序员。作为一名新程序员,我在工作时总是尽力遵循最佳实践。今天我开始使用 SQL Server,我问同事我应该为用户描述列使用哪种数据类型。他告诉我使用 nvarchar(MAX)
,我就这么做了,而且效果很好。
但是,对于这种情况,我们应该始终使用 nvarchar(max)
吗?或者分配 500 个字符之类的东西更好?
我问这个问题是因为我在 google 上搜索了一下,看到有人说 nvarchar(max)
为列保留了大量内存,这最终可能会降低数据库的性能。
编辑:伙计们,答案很棒,我现在对这个话题很清楚了。没有 unicode 的东西,所以我会选择 varchar(600)
最佳答案
最佳实践是在设计表之前执行适当的数据分析。如果没有上下文,人们可以假设描述不由页面和文本页面组成,因此“最大”选择可能不合适。作为选择 varchar(max) 时的额外考虑因素,请记住您通常需要提供在应用程序中显示此类值的支持。如果您不打算设计一个 GUI 来执行此操作,那么这个选择可能不合适。
还有一个警告 - 通过选择超出您可预见需求的数据类型来尝试让您的架构面向 future 通常是徒劳的。
关于sql - SQL Server 的良好实践 : nvarchar(max) performance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43945645/