MSSQL數據庫中nvarchar和nchar在使用時如何選擇


nvarchar 和 nchar 最大的差異就是前者是在儲存時,是會依據字串的長度不同,而以不同的長度來儲存。而後者nchar是固定長度,也就是不管你是用 1 個字元,還是 10 個字元,只要欄位是 12,就是使用 12 個字元的空間來儲存。

在空間的利用上,nvarchar 是佔了優勢,而且使用起來也很方便。但是有一個隱藏而容易忽視的問題,一般在開發時都不會發現,那就是「效率」。尤其這個欄位是拿來做索引值,而且資料量很大的時候,如果用 nchar 處理欄位搜尋,會比 nvarchar 快很多。這個欄位我們在做分析時,認為是重要而且會經常被拿來搜尋的一個欄位,所以在設計時就使用 nchar 來處理。

通常在使用 nvarchar 時,大概都是在字串長度可能會超過 50 時才會使用,不然基於效能的考量,都是會用 nchar 來處理。(資料如果只有幾百筆時,其實沒有明顯的差距)

PS:拿來做索引的字串欄位,在SQL中有一個長度上限,不是隨意長度的欄位都能做索引值。

引自:http://www.limingchstudio.com/2009/07/saka.html

你可能感兴趣的:(varchar)