数据库的char 和 varchar 有什么不同
- 存储不同:varchar存储可变长度的字符,char存储固定长度的字符
- 存储处理不同:varchar在末尾增加1或2个字节存储字符长度,char会删除字符末尾空格并用空格进行剩余空间填充。
- 对于经常变更的数据:char比varchar不容易产生碎片
- 对于非常短的列,char比varchar存储效率更高(因为varchar末尾有存储字符长度)
- 最大存储容量:char最多只能存放的字符个数为255,和编码无关,任何编码最大容量都是255;varchar就比较复杂了,首先考虑MySQL行的默认最大65535字节,如果单列存储varchar的话,还要考虑NULL标识符,如果可为NULL,字节占用1,varchar末尾2个字节存储长度,故65535-1-2 = 65532字节,一个中文字符占2-3个字节。