mysql char varchar text blob datetime timestamp date

本文探讨了char、varchar、text不同类型在MySQL中的特点,包括长度限制、空间效率、应用场景,并对比了datetime类型的存储优势和适用场景。

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之间的日期
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值