“CHAR和VARCHAR”的版本间的差异
跳到导航
跳到搜索
Jihongchang(讨论 | 贡献) (建立内容为“=== char 是一个固定长度的字符串,varchar是一个可变长度的字符串 === 假设声明一个char(10)来存储字符串 “ABC”,虽然实际长…”的新页面) |
Jihongchang(讨论 | 贡献) |
||
(未显示同一用户的2个中间版本) | |||
第1行: | 第1行: | ||
− | === | + | === char是一个固定长度的字符串,varchar是一个可变长度的字符串 === |
假设声明一个char(10)来存储字符串 “ABC”,虽然实际长度只有3,但是char还是会占用10个字符的存储空间; | 假设声明一个char(10)来存储字符串 “ABC”,虽然实际长度只有3,但是char还是会占用10个字符的存储空间; | ||
第16行: | 第16行: | ||
varchar存储空间等于实际数据长度,所以varchar实际存储空间的使用要比char更小 | varchar存储空间等于实际数据长度,所以varchar实际存储空间的使用要比char更小 | ||
+ | |||
+ | |||
+ | === 结论 === | ||
+ | char适合存储比较短的且是固定长度的字符串; | ||
+ | |||
+ | varchar适合存储可变长度的字符串 | ||
+ | |||
+ | |||
+ | === MD5使用char存储还是varchar存储 === | ||
+ | MD5就比较适合使用char类型存储,因为char类型是一种固定长度的字符串,而MD5算法生成的字符串就是一个固定长度的字符串,不管数据怎么修改,长度是不变的; | ||
+ | |||
+ | 另外因为固定长度,所以在数据变更的时候,不需要去调整存储空间的大小,在效率上会比varchar更好一些 |
2023年1月20日 (五) 05:15的最新版本
char是一个固定长度的字符串,varchar是一个可变长度的字符串
假设声明一个char(10)来存储字符串 “ABC”,虽然实际长度只有3,但是char还是会占用10个字符的存储空间;
同样如果用varchar(10)来存储,那么实际就只会使用3个字符的存储空间
存储效率不同
char类型每次修改之后存储空间的大小不变,所以效率更高;
varchar 每次修改数据都需要更新存储空间的大小,效率较低
存储空间不同
char不管实际存储的数据多大,使用的存储空间都是固定的;
varchar存储空间等于实际数据长度,所以varchar实际存储空间的使用要比char更小
结论
char适合存储比较短的且是固定长度的字符串;
varchar适合存储可变长度的字符串
MD5使用char存储还是varchar存储
MD5就比较适合使用char类型存储,因为char类型是一种固定长度的字符串,而MD5算法生成的字符串就是一个固定长度的字符串,不管数据怎么修改,长度是不变的;
另外因为固定长度,所以在数据变更的时候,不需要去调整存储空间的大小,在效率上会比varchar更好一些