前言
在使用MySQL的时候我们会遇到一个问题就是如何去选择合适的数据类型和字符集,选择合适的数据类型可以提供效率和节省空间,选择合适的字符集可以解决一些编码问题。
数据类型
char和varchar
都是用来存储字符串的,但是它们的检索方式不同,char属于固定长度的字符类型,而varchar属于可变长度的字符类型。
值 | char(4) | 存储长度 | varchar(4) | 存储长度 |
---|---|---|---|---|
'' | ‘ ’ | 4个字节 | '' | 1个字节 |
‘ab’ | ‘ab ’ | 4个字节 | ‘ab’ | 2个字节 |
‘abc’ | ‘abc ’ | 4个字节 | ‘abc’ | 3个字节 |
‘abcd’ | ‘abcd’ | 4个字节 | ‘abcd’ | 4个字节 |
由于char是固定长度的,所以它的处理速度比varchar快的多,但是浪费存储空间,所以对于那些长度变化不大并对查询速度有要求的数据可以考虑使用char类型来存储。
另外,随着MySQL版本的不断升级,varchar数据类型的性能也在不断改进并提高,所以实际使用中varchar被使用的更多。