暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

360.MySQL 中的 char, varchar, text 对比

每天一个开发小知识

char(n)

  • 固定字符

  • n 最大值为 255

  • 每个数据占用的磁盘空间均为 n 个字符(不是字节,一个汉字是一个字符)

  • 数据不足 n 个字符,用空格补齐

  • 数据超过 n 个字符,则发生截断

  • 读取时,MySQL 会自动截断尾部的空格

  • 存在浪费空间,数据被截断的风险

  • 访问速度快


varchar(n)

  • 变长字符

  • n 最大为 65535

  • 每个数据占用的磁盘空间为真实字符数 + 1

  • 如果真实字符数 + 1 超过 n 个字符,则发生截断

  • 存在数据被截断的风险

  • 访问速度慢

  • 充分利用空间


text

  • 保存变长大数据

  • 最大长度为 65535

  • text 和 varchar 的区别在于:text 的真实长度用额外空间保存,而 varchar 真实长度保存在 65535 空间中,因此,varchar 能保存的最大真实长度少于 65536

  • 当 varchar(n) 中的 n 大于特定值时,MySQL 会自动将其转换成 text

    • 大于 255,varchar 自动转换成 tinytext

    • 大于 500,varchar 自动转换成 text

    • 大于 20000,varchar 自动转换成 mediumtext


每天一个开发小知识,今天你学废了吗?
文章转载自每天一个开发小知识,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论