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会更好一些。