MySQL中varchar(10)、varchar(100)和char的区别

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值