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

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

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


下面和大家一起学习一下
数据库设计实战之char和varchar(区别分享)_第1张图片
char(定长字符串)——定长类型。

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


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

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


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

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

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

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


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

数据库设计实战之char和varchar(区别分享)_第2张图片
秋天快到了是一个收获的季节,更高处见…

你可能感兴趣的:(Java项目实战问题)