数据库内的 char 和 varchar都是用于存储字符串数据类型的。两者主要区别是存储方式和存储情况:
1) 固定长度和可变长度
char是固定长度的数据字符串类型,需指存储的字符长度;不论存储的字符长度是否达到了这个长度,都会占据指定存储的字符空间;例:定义一个char为10,存储一个 hi,也会占据10个字符的存储空间。
varchar是可变长度的字符串数据类型,存储时指定后可根据数据的实际长度来而改变;例:定义一个varchar为10,存储一个 hi,只会占据两个字符长度;若存储的内容超过10个字符,可往大了改。
2) 存储效率
char:由于char是固定长度的,所以在存储和检索时效率可能会比较高,因为每个数据项都占用相同大小的存储空间,数据库引擎可以更容易地计算偏移量。
varchar:varchar由于是可变长度的,存储和检索时可能会稍微慢一些,因为需要额外的长度信息,并且在内存中存储时可能会涉及到更多的指针操作。
3) 存储空间的使用
char:char在存储时会始终占用固定长度的存储空间,因此如果存储的数据项长度不足指定长度,可能会浪费一些存储空间。
varchar:varchar在存储时会根据实际数据的长度来分配存储空间,因此可以更加节省存储空间,特别是对于存储长度变化较大的数据项。
4) mysql数据库占据字节
char: 0 到 255 字符。
varchar: 0 到 65,535 字节。
总结:当数据项长度固定且不会太长,可以考虑使用char;如果数据项长度不固定或长度较长,可以考虑使用varchar。
标签:数据项,存储,varchar,数据库,char,长度,存储空间 From: https://www.cnblogs.com/warmNest-llb/p/18095598