他们的存储方式和数据的检索方式都不一样。
数据的检索效率是:char>varchar>text
空间占用方面,要具体情况具体分析了。
名称 | 占用长度 | 其他 |
---|---|---|
CHAR(M) | M个字节,0 <=M<= 255 | 定长 |
VARCHAR(M) | L+1个字节,其中L<=M且0 <=M<= 65535 | 变长 |
TEXT | L+2个字节,其中L< 216 | 变长 ,不能有默认值 |
定长会用空格填充,变长不会用空格填充,变长字段最终占用空间与实际存储的值有关
1. 经常变化的字段用varchar
2. 知道固定长度的用char
3. 尽量用varchar
4. 超过255字节的只能用varchar或者text
5. 能用varchar的地方不用text