- 存储同样长度的字符,varchar比char要多占用一个字节的空间,以存储字符串结束符
- 二者操作内存的方式不同:对于varchar数据类型来说,硬盘上的存储空间虽然都是根据字符串的实际长度来存储空间的,但在内存中是根据varchar类型定义的长度来分配占用的内存空间的,而不是根据字符串的实际长度来分配的。显然,这对于排序和临时表会较大的性能影响。
- char占用磁盘的存储空间,是连续分配的
varchar存储的数据是可变的,修改前后数据长度不一致,会出现磁盘碎片问题,碎片问题可以通过数据库的导入导出来实现存储空间的重新分配 - char一般用于存储身份证、MD5哈希后的密码等定长字符串
参考文章:MySql中varchar(10)和varchar(100)的区别==>>以及char的利弊
MySQL中varchar(10)、varchar(100)和char的区别
最新推荐文章于 2024-07-25 15:55:44 发布
本文探讨了varchar与char在MySQL中存储字符的不同之处:varchar按实际长度存储,内存分配固定;char则固定长度,可能导致碎片和性能损失。适用场景包括定长字符串和灵活长度字符串的存储优化。
摘要由CSDN通过智能技术生成