簡體   English   中英

nvarchar(50)與nvarchar(max)的含義

[英]Implications of nvarchar (50) vs nvarchar (max)

如果下面兩個表的唯一區別是nvarchar(50)nvarchar(max)並且每個字段中的字符串范圍是1到50個字符,那么下面兩個表之間的一般存儲和性能差異是什么? 這是在SQL Server 2005中。

表格1

firstname nvarchar (50)
lastname nvarchar (50)
username nvarchar (50)

表2

firstname nvarchar (max)
lastname nvarchar (max)
username nvarchar (max)

如果您保證有1到50個字符之間的字符串,那么使用varchar(X)與varchar(MAX)運行的相同查詢將在更長的X字符串中運行。 此外,您無法在varchar(MAX)字段上創建索引。

一旦您的行的長度超過8000個字符,那么還有其他性能考慮因素(這些行基本上被視為TEXT而不是varchar(n))。 雖然這與比較並不十分相關,因為對於長度超過8000的字符串,沒有varchar(N)選項。

首先,您將無法在(最大)長度列上創建索引。 因此,如果要存儲可搜索的數據,即,如果這些列將成為WHERE謂詞的一部分,則可能無法提高查詢性能。 在這種情況下,您可能需要考慮FullText Search和這些列的索引。

nvarchar max適用於最大2GB的列。 所以基本上它占用了更多的資源。 如果您知道不需要那么多空間,最好使用nvarchar(50)。 每個字符大約2個字節,所以2 GB,10億個字符......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM