char varchar varchar2 的区别
的有关信息介绍如下:问题补充说明:如题,谢谢
1、处理速度
char和相同长度的varchar处理速农投白积十听哪度差不多。varchar的长度不会影响处理速度;
2、string
O/RMapping中对应实体的属性类型一般是以string居多,用char[]的非常少,所以如果按mapping的合理性来说,可变长度的类型更加吻合;varchar的存放和string是一样原理的,即length{bloc样案甚铁乙k}这种方式,所以var答器期手就char的长度和它金积格仍千备继神实际占用空间是无关的;
3、查询成本
char和varchar的比教跑十十思空品拉较成本是一样的,现在关键就看它们的索引查找的成本了,因为查找策略都一样,因此应该比较谁占用空间小。
例:
在存放相同数量的字符静极失亚燃为担连情况下,如果数量小,那么char占用长度是小于varchar的,但如果数量稍大,则varchar完全可能小于char,而且要看实际填充数值的充实度,比如说varchar(3)和char(3),那么理论上应该是char快了,但如果是char(10)和varch圆周犯铁宜优ar(10),充实度只有30%的情况下,理论上就应该是varchar快了。
因为varchar需要额外空间存放块长度,所以只要length(1-fillfactor)大于这个存放空间(好像是2字节),那么它就会比相同纸长度的char快了。
扩展资料源错眼散程说袁绿跟:
1、如果数据量非常大,又能100%确定长度且保存只是ansi字符,那么char;
2、能宁差界缩冷春程草自合皮确定长度又不一定是ansi字符或者,那么用nc察味天办初带条互艺城重har;
3、不确定也海却四介声白连民长度,要查询且希望利用索引的话,用nvarchar类型吧,将它们设到400;
4、不查询的话没什么好说的,用nvarchar(4000);
5、性商连办针垂格豪爽的可以只用3和4,偶胜脸露科措世刘河及赶尔用用1,毕竟这是一种额外说明,等于告诉别人说,我一定需要长度为X位的数据。