数据库 varchar vs char

char 与 varchar都是数据库存储字符串的存储类型

区别:

  • char是固定长度存储方式,实际存储长度没达到设定长度时会填充空格。最大存储长度只有255
  • varchar是变长存储,只制定最大存储长度,实际长度按照实际字符长度来。最大存储长度为65535(5.0.3以前为255)
  • varchar数据更新时,如果新存储的数据长度变大,会采用分页或者拆分的方式。实际对性能也没有影响,innodb采用页管理数据,数据移动是现在内存完成再写到磁盘,因此数据移动很快
    mysql innodb数据库性能实践
  • 查找char数据也没有比varchar数据速度更快,上面的实验也验证了两者性能没有差别,
    char vs varchar

FALSE: a char is just a varchar2 blank padded - we do not store strings "at a specified position from each other". We do search for the end of the string - we use a leading byte length to figure things out.

使用总结

  • 一般优先使用varchar,不耗费存储空间,一些特殊情况下可以使用char

  • 当字符串长度固定时。使用char。例如存储MD5哈希值,或者uuid,使用char

  • 当字符串长度较小。例如只有10个以内的字符

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容