MySQL

2026-10-19 16:34:34 数据库

Char和Varchar的区别

char 定长,适合固定长度;varchar 变长,适合长短不定的字符串。

定长行结构简化了内存读取、计算、页内寻址

char(n):n 代表字符数,最多 255。

  • 不管你存的字符串有多短,都会占用 n 个字符的空间,不足的部分用空格填充,读取时自动把末尾空格删掉

varchar(n):n 是最大字符数,MySQL5.0.3+ 最大支持 65535 字节(不是字符)。

  • 占用空间 = 实际字符串长度 + 长度前缀

    • 长度 ≤255:前缀 1 字节
    • >255:前缀 2 字节
  • 例子:varchar(10)

    • 存 'abc' → 只占用 3 字符 + 1 字节前缀