CHAR存储为固定长度字符串,VARCHAR存储为可变长度字符串.我可以使用VARCHAR存储固定长度的字符串,但为什么人们仍然想使用CHAR来存储固定长度的字符串?使用CHAR over VARCHAR有什么好处吗?如果没有任何好处,为什么mySQL数据库不会删除CHAR的选项?
varchar存储可变长度的字符串.它可以比固定长度类型需要更少的存储空间,因为它只使用所需的空间.
varchar还使用1或2个额外字节来记录值的长度.例如,varchar(10)将使用最多11个字节的存储空间.varchar有助于提高性能,因为它节省了空间 但是因为行是可变长度的,所以当你更新它们时它们会增长,这会导致额外的工作.如果一行增长并且不再适合其原始位置,则该行为取决于存储引擎...
char是固定长度的,mysql总是为指定的字符数分配足够的空间.存储CHAR值时,MySQL会删除任何尾随空格.根据需要使用空格填充值以进行比较.
如果要存储非常短的字符串,或者所有值的长度几乎相同,则char非常有用.例如,对于用户密码的MD5值,CHAR是一个不错的选择,它们的长度始终相同.
对于频繁更改的数据,char也优于VARCHAR,因为固定长度的行不容易出现碎片.
| 归档时间: |
|
| 查看次数: |
5066 次 |
| 最近记录: |