MySQL中varchar(10)和varchar(100)的优缺点

因为varchar是个变长的类型,那么把varchar(X)的长度设置多长更合适呢?是越长越好吗?越长越可以保证以后有更长的数据存储时,能更好的兼容。

于是本来varchar(10)就可以满足当前的存储的长度需求了,改成了varchar(100)。

疑问来了:

既然是变长类型,varchar(10)和varchar(100)有什么区别?

先举个例子:如果要存储'hello12345'这个字符串,使用varchar(10)和varchar(100)存储,占用磁盘空间是一样的么?

答案是:占用磁盘的存储空间是一样的。

既然存储时磁盘占用空间一样,还有什么其他的区别吗?

虽然占用的磁盘空间一样,但是消耗的内存不一样,更长的列消耗的内存会更多。

因为MySQL通常会分配固定大小的内存块来保存内部值,尤其是使用临时表进行排序操作时会消耗更多的内存。在使用磁盘进行排序时,也是一样

所以此时varchar(100) 会消耗更多的内存

varchar(10)和varchar(100)的优劣势是什么?

因为涉及到文件排序或者基于磁盘的临时表时,更长的列会消耗更多的内存,所以在使用时,

不能太过浪费内存空间,还是需要评估实际使用的长度来设置字符的长度。

varchar(10)会更加节约内存空间,但是实际业务中字符长度一旦超过10就需要更改表结构,在表数据量特别大时,不易拓展。

而varchar(100)无需更改表结构,业务拓展性更好。

一般冗余10%的长度即可。

posted @   海布里Simple  阅读(1947)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示