[英]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.