1、char和varchar的区别
char 长度固定,varchar长度可变;
char的最大长度是255
char对英文字符占用1个字节、汉字占用2个字节。varchar对中英文均占用2个字节。
char设置固定长度后,比如char(10),此时写入“abc”,后面会用空格代替,占的长度依然是10。varchar的话长度是4。varchar比char节省空间,但效率不如char
对于非固定长度用varchar存储比较好。
2、用char不用varchar的场景
1、像是uuid这种固定长度的用char比较好,因为用varchar的话,varchar的动态长度的特性用不到还会占用1个byte存储信息长度。
2、varchar虽然比char节省空间,但是一个varchar列经常被修改,而且每次修改的数据长度不同,这会引起“行迁移的现象”,此时用char比较好。
3、像是比较简短的比如门牌号 101、102这种用char比较好
3、子查询中用exists 与in的区别
exists 先查外表,在将外表数据代入内查询作判断
in 是先查内表,查出来作为临时表 在和外表去查询。
因此:外表数据多用 in,外表数据少用 exists