char和varchar是一样的字符型, 不同在于,varchar比char更灵活,精确,且不占内存空间, 当你取同样的字符时,char会在该字符后面加上空格, 而varchar则只取得这个字符,比如有字段5,用varchar从该字段 中取aa时,你取得的是"aa",如果用char,则取得的是"aa ", char会在后面用空格补齐5个字段。 所以,varchar比char更精确,但,varchar的速度却比char慢。 因为char是直接取得全部,而varchar是精确的去取得你要的字符。 char因为要直存直取查询速度较快,而varchar因为要精确获取你的字符查询速度较慢。 对于varchar和char的选择,一般性的指导原则是,对于最大长度<=4的字符串,使用char(nchar); 对于最大长度大于20的字符串,使用varchar(nvarchar)。对于4~20之间的字符串,可以根据自己情况定。对于大多数情形,使用varchar会更好。
|