我們有一個索引列(ModelName
),它在表格中非常重要,與「目錄編號」非常相似,但它不是PK。在NVarchar(50)與NVarchar(255)列中使用索引?
很多ORDER by ModelName
; WHERE ModelName
等正在使用。
列最初開始作爲NVarchar(50)
,但改變後大小隨時間爲100,現在它需要的是255
我發現有很多帖子上"NVarchar(MAX) vs. NVarChar(N)"
,但我不能得到一個結論性的答案:
是否有使用NVarchar(255)
,而不是NVarchar(100)
代替NVarchar(50)
特別是當它涉及到指標任何/顯著的性能影響?
在性能方面,列長度(50)是否比長度(255)更短?並且可以針對索引進行特殊設置以提高性能?
這是在給予通過@a_horse_with_no_name另一個參考:阿里爾
Best practices for SQL varchar column length
注意答案:https://stackoverflow.com/a/8295195/1140885
凡說:
「具體來說,當進行分揀時,較大的欄杆佔用更多 的空間,所以如果這會損害性能,那麼你需要擔心它,並使它們變小。「
,並在註釋:
「上有索引的問題和限制來考慮,那麼也 不能有(A,B,C,d)指數在所有。四列是VARCHAR(255)」
沒有明確的結論/參考文檔等
在性能方面,nvarchar(42),nvarchar(255)或nvarchar(639),沒有區別。另見這裏:http://stackoverflow.com/q/8295131/330315 –
@a_horse_with_no_name,感謝您的鏈接,但是,'NVarchar'和'Varchar'執行相同的?我的問題是特定於'NVarchar'。 – ZigiZ
@a_horse_with_no_name,此外,您提供的問題/答案(這非常有趣+1)根本不符合索引。只是在註釋中提到''「索引也存在問題和限制,當所有四列都是VARCHAR(255)」時,不能有(a,b,c,d)索引,並且''具體來說,在進行排序時,較大的列會佔用更多的空間「...... – ZigiZ