varchar/nvarchar 和 char/nchar区别

1.带var前缀的表示实际存储空间是可变长的,如varchar/nvarchar;相反则是存储空间是定长的(长度是固定的)。

如varchar(10)/nvarchar(10)的实际存储空间为<=10,而char(10)/nchar(10)的实际存库空间为10,因为当输入长度不够10时,

数据库会以英文空格形式在字段后面填充。

2.n表示为Unicode字符,即所有字符都占两个字节,nchar,nvarchar

字符中,英文字符只需要一个字节存储,但汉字需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是

为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示

3.带VAR前缀比不带VAR节省空间,在效率上比不带VAR会稍微差一些,即要想获得效率,就必须牺牲一定的空间,这也就是我

们在数据库设计上常说的‘以空间换效率’。 

4.带VAR前缀虽然比不带VAR前缀节省空间,但是如果一个VAR列经常被修改,而且每次被修改的数据的长度不同,这会引

起‘行迁移’(Row Migration)现象,而这造成多余的I/O,是数据库设计和调整中要尽力避免的,在这种情况下用不带var前缀

代替带var会更好一些。



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值