亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

varchar(n),nvarchar(n) 長度、性能、及所占空

系統 1841 0

varchar(n),nvarchar(n) 中的n怎么解釋:
nvarchar(n)最多能存n個 字符 ,不區分中英文。
varchar(n)最多能存n個 字節 ,一個中文是兩個字節。

所占空間:
  nvarchar(n)一個字符會占兩個字節空間。
  varchar(n)中文占兩字節空間,英文占一個。

n的取值范圍:
  nvarchar(n)?? n的范圍是:1與4000之間
  varchar(n)?? n的范圍是:1與8000之間

n的大小是否會影響性能:
  varchar及nvarchar里的長度 n 不會影響空間大小及性能。除非n是max并且內容大于4000或8000
  設置n更多的是業務需要,如限制身份證只能輸入18位,再多就報錯,或者防止惡意攻擊撐爆硬盤。對空間及性能都沒有影響

n設置多大比較好:
  既然對空間及性能都沒有影響,那我們只要考慮業務需要就可以了,我分析過微軟的數據庫,大都設置為:256,也會看到64,128,512,max等,可能是便于記憶吧。

varchar(n),nvarchar(n)存儲空間舉例解釋:
  包含 n 個字符的可變長度 Unicode 字符數據。字節的存儲大小是所輸入字符個數的兩倍。??
  兩字段分別有字段值:我和coffee??
  那么varchar字段占2×2+6=10個字節的存儲空間,而nvarchar字段占8×2=16個字節的存儲空間。??
  如字段值只是英文可選擇varchar,而字段值存在較多的雙字節(中文、韓文等)字符時用nvarchar。

varchar和nvarchar如何選擇?

  varchar在SQL Server中是采用單字節來存儲數據的,nvarchar是使用Unicode來存儲數據的.中文字符存儲到SQL Server中會保存為兩個字節(一般采用Unicode編碼),英文字符保存到數據庫中,如果字段的類型為varchar,則只會占用一個字節,而如果字段的類型為nvarchar,則會占用兩個字節.
  正常情況下,我們使用varchar也可以存儲中文字符,但是如果遇到操作系統是英文操作系統并且對中文字體的支持不全面時, 在SQL Server存儲中文字符為varchar就會出現亂碼(顯示為??).而且正常情況下,主機都會支持中文的環境,所以如果使用varchar來存儲數據,在開發階段是發現不了的.多數情況下,在布署的時候也不會有問題.
  但是!如果布署的主機是英文操作系統,并且不支持中文環境,那問題就出來了.所有的varchar字段在存儲中文的時候都會變成亂碼(顯示為??).而且一般情況下你不會知道這是因為你采用了錯誤的數據類型來存儲所造成的,你會試著去裝中文字體,試著去設置操作系統的語言環境...這些都不能解決問題,唯一能解決問題的是把數據庫字段的類型個性為nvarchar(或者nchar).對項目管理比較熟悉的朋友應該都知道,到布署階段再來修改數據庫是一個很恐怖的事情.
  使用nvarchar的另一個非常好處就是在判斷字符串的時候可以不需要考慮中英文兩種字符的差別.
  當然,使用nvarchar存儲英文字符會增大一倍的存儲空間.但是在存儲代價已經很低廉的情況下,優先考慮兼容性會給你帶來更多好處的.
  所以在Design的時候應該盡量使用nvarchar來存儲數據.只有在你確保該字段不會保存中文的時候,才采用varchar來存儲.


以下內容來源于:?< http://topic.csdn.net/u/20100326/14/d8d6b235-31ed-4167-8ddf-945953da67f9.html >?

  如果 varchar(300) 和 varchar(8000) 都存儲相同的字符數,性能上是沒有差別的,存儲行為上也沒有不同。因為它們都有相同的存儲結構,兩個字節的偏移,兩個字節的列數(如果表中所有的列都是 varchar 類型)。區別只在于存儲容量上。
大多數的性能比較都集中在 varchar 和 char,varchar 和 varchar(max) 上。還有,行外存儲(SQL Server 2005 支持的)。

  varchar(max) (lob 類型)與 varchar 存儲方式是不同的。
  當 LOB 數據足夠小時,可以考慮將數據直接存儲在數據行(行所在的數據頁面)中,從而可以避免額外的讀取 LOB 頁面,提升訪問 LOB 數據的效率(將 LOB 數據直接存儲在數據頁面的閾值由 text in row 選項設置)。
而當 LOB 數據大于此閾值,或者所在行的大小超過了 8060 字節(單行最大 SIZE),LOB 數據將會存儲在 LOB 頁面,而在數據頁面中保留一個指向 LOB 頁面的 16 字節的指針。其訪問效率當然會將低。
另外還有,惡意用戶可以利用這一點“撐爆”你的磁盤。

?


引用:
varchar(n),nvarchar(n) 長度、性能、及所占空間分析
http://www.yongfa365.com/item/SQLServer-varchar-nvarchar.html

?

?

varchar(n),nvarchar(n) 長度、性能、及所占空間分析


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本a∨在线播放高清 | 特级特黄一级乱仑 | 亚洲特级aaaaaa毛片 | 在线免费视频国产 | 欧美日韩成人在线视频 | 亚洲香蕉国产高清在线播放 | 国产精品亚洲片在线牛牛影视 | 国产午夜精品不卡观看 | 国产成人高清精品免费观看 | 性丰满妇女free性性性 | 欧美一级高清片欧美国产欧美 | 国产精品免费一区二区三区四区 | 毛片a级放荡的护士hd | 伊人色网站 | 狠狠色狠狠色综合久久第一次 | 日本在线不卡视频 | 久久九九热 | 香蕉视频在线视频 | 欧美24video| 亚洲欧洲日韩在线 | 亚洲综合色视频 | 久草在线中文最新视频 | 日韩毛片在线免费观看 | 97在线观看免费观看高清 | 天天操天天插 | 久久成年人视频 | 欧美激情高清免费不卡 | 91国内在线观看 | 久久综合香蕉 | 九九视频在线看精品 | 九九热视频精品在线 | 亚洲区欧美中文字幕久久 | 黄在线免费看 | 日韩高清在线日韩大片观看网址 | 亚洲久久草 | 久久青草社区 | 免费网站成人亚洲 | 四虎永久在线精品国产免费 | 日本高清毛片视频在线看 | 国产一区二区三区四 | 一级毛片不卡片免费观看 |