sql - SQL Server 的良好实践 : nvarchar(max) performance

标签 sql .net sql-server

这里是新的 .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/

相关文章:

c# - 有效去除用户评论中的恶语

MySQL - 按字母顺序列出给定名称之前的名称详细信息(名字和姓氏分开)

c# - CaSTLe Windsor 解析和泛型

c# - 当数据已在数据库中时 EF 种子不起作用

sql - 查询显示多对多关系中的关联列表

sql-server - Heroku 与 SQL Server

php - 如何在mysql查询中获取带有品牌的唯一零件号?

sql - 在第一次引导事件发生之前查找平均观看次数

c# - 缺少系统.Windows

sql - Microsoft 主数据服务 - 何时使用?