当前位置: 代码迷 >> 综合 >> mysql char varchar text blob datetime timestamp date
  详细解决方案

mysql char varchar text blob datetime timestamp date

热度:81   发布时间:2023-09-19 18:02:46.0

char

特点

  • 最大长度255
  • 自动删除末尾的空格
  • 检索效率和写效率比varchar,以空间换取时间
    应用场景
  • 存储长度变化不大的数据
  • 存储短字符串且经常更新的数据

varchar

特点

  • 数据长度根据实际定义,越小越好
  • varchar(n)长度定义少于255则使用额外一个字节保存长度,超过255使用额外两个字节保存长度
  • varchar(255) 和 varchar(5)占用的硬盘空间都为一个字节,但是占用的内存空间大小不一致
  • varchar在5.6版本之前变更长度或者长度从255变到255以上时,会导致锁表
    应用场景
  • 存储长度波动较大的数据,如文章
  • 字符串很少更新的场景,每次更新后都会重算并使用额外存储空间保存长度
  • 适合保存多字节字符串

text

blob

mysql将text和blob当作对象来处理。处理大文本数据,一般不用。

datetime

特点

  • 占用8字节
  • 时区无关,数据库底层时区配置对datetime无效
  • 可保存到毫秒
  • 可保存范围大
  • 不要使用字符串存储时间类型,占用空间大,损失日期类型函数的便捷性

timestamp

  • 占用四个字节
  • 时间范围1970-01-01到2038-01-19
  • 精确到秒
  • 采用整形存储
  • 依赖数据库设置的时区
  • 自动更新timestamp列的值

date

  • 占用三个字节
  • 可以使用日期时间函数
  • 保存范围为1000-01-01到9999-12-31之间的日期
  相关解决方案