数据库设计实战之char和varchar(区别分享)

举报
辰兮 发表于 2022/03/23 00:55:31 2022/03/23
【摘要】 hello你好我是辰兮,很高兴你来阅读,分享一个最近项目遇到的数据设计的问题以及查阅资料后的解答,分享获取新知,大家一起进步。 最近在实际项目中被规定要求字段长度在五十以下的使用定长类型,有...

hello你好我是辰兮,很高兴你来阅读,分享一个最近项目遇到的数据设计的问题以及查阅资料后的解答,分享获取新知,大家一起进步。

最近在实际项目中被规定要求字段长度在五十以下的使用定长类型,有多少写多少--如char(8)--,超过五十的用变长类型--如varchar(100)--


下面和大家一起学习一下
在这里插入图片描述
char(定长字符串)——定长类型。

如将姓名列指定为char(8)。当保存“辰兮”时,数据库还会自动保存4个空格;保存“辰兮兮”时,数据库还会自动保存2个空格,这样每个人的姓名长度都为8,长度是固定的,所以叫做“定长”。明显,在保存信息时,定长会因为保存了很空格而多占用了磁盘空间。


数据库保存这些“多余”的空格有什么作用?

那就是查询时,在取到字段的长度以后,不再需要判断每一个姓名的实际长度,就可以取到数据。这样查询效率大大提高了。


varchar(变长字符串)——变长类型。

如将姓名列指定为varchar(8)。当保存“辰兮”和保存“辰兮兮”时,数据库都只保存数据的本身,不会自动添加空格。两个人姓名的长度分别为4和6,长度是变化的,所以叫做“变长”。这样没有多占用任何磁盘空间。

但是在查询时,每个人的姓名的长度都不同,必须先判断后取数据,所以查询效率比char类型要低。

先判断才取数据,这样查询效率降低


小结:char和varchar的关系就是空间和时间的关系,char是以空间换时间,牺牲了磁盘空间,但羸得了查询时间

在这里插入图片描述
秋天快到了是一个收获的季节,更高处见…

文章来源: blessing.blog.csdn.net,作者:辰兮要努力,版权归原作者所有,如需转载,请联系作者。

原文链接:blessing.blog.csdn.net/article/details/107896543

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。