mysql中 Char 和 varchar 的区别?

1、char 的长度是固定不变,而 varchar 的长度是可变的
例如值:abc
类型 char (10),存储值为:abc_______(abc+7 个空格)
类型 varchar (10), 存储值为:abc (自动缩短为 3 个字母的长度,节省存储空间)

2、因为 char 类型长度固定,因此 char 的存取效率比 varchar 要快得多,方便程序的存储与查找。
但是 char 也为此付出的是空间的代价,因为其长度固定,所以会占据多余的空间,可谓是以空间换取时间效率。
而 varchar 则刚好相反,节省空间但存取效率相对较低。

3、存储的容量不同
char 类型最多可存放 255 个字符,并且和编码类型无关
varchar 类型复杂一些:
varchar 的最大长度为 65535 个字节,varchar 可存放的字符数因编码类型不同而异
👉字符类型若为 gbk,每个字符最多占 2 个字节,最大长度不能超过 32766 个字符
👉字符类型若为 utf8,每个字符最多占 3 个字节,最大长度不能超过 21845 个字符

💻使用建议
👉若字段长度固定,则可以使用 char 来保存,存取效率高,如:手机号、身份证
👉若字段长度经常改变,可选用 varchar 来最大化利用存储空间,减少空间浪费。
🌈
💻扩展
👉MySQL4.0 版本及以下,varchar 长度是按字节展示的,如 varchar (10),指的是 10 字节;
👉MySQL5.0 版本及以上,varchar 长度则按字符展示,如 varchar (10),指的是 10 字符。

引用:https://www.xiaohongshu.com/explore/6221ea10000000000102c51c

posted @ 2023-03-07 08:44  青柚  阅读(270)  评论(0编辑  收藏  举报