在MySQL的字段声明中char和varchar的区别?
区别一:定长和变长
- char字段 长度固定,如果插入的数据的长度小于固定长度则用空格填充。因为长度固定,所以读取效率明显比varchar快的多。但是长度固定会造成一定的空间浪费,是一种用空间换时间的策略。
- varchar字段 长度可变,插入数据是多长,就按照多长来进行存储。相比于char来讲,读取速度就会慢很多,可达到百分之50%,但是不会占据多余的空间,是用时间换空间的做法。
区别二:存储容量不同
- char字段,最多存放的字符个数为255,与编码方式无关
- varchar字段,最多存放的长度是65532个字节,单是最大的有效长度与具体使用的字符集用来确定,