MySQL 数据类型笔记

MySQL 的字段数据类型分为三大类:数值类型、字符串类型、日期类型。合理选择数据类型可以节省存储空间、提升查询效率。

一、数值类型

分为整数、浮点数、定点数。日常开发重点掌握 tinyintintbigintdecimal

类型 占用空间 取值范围 使用说明
tinyint 1 byte 有符号:-128 ~ 127 无符号:0 ~ 255 特小型整数,适合年龄、状态标记
smallint 2 byte 有符号:-32768 ~ 32767 无符号:0 ~ 65535 小型整数,使用较少
mediumint 3 byte 有符号:−231-2^{31}−231 ~ 231−12^{31}-1231−1 无符号:0 ~ 232−12^{32}-1232−1 中型整数,项目极少使用
int / integer 4 byte 有符号:-2147483648 ~ 2147483647 最常用标准整数,普通主键、编号优先选择
bigint 8 byte 超大范围整数 高并发业务主键、雪花id必备
float 4 byte 单精度浮点数 存在精度丢失,禁止用于金额计算
double 8 byte 双精度浮点数 依然存在精度丢失,禁止用于金额计算
decimal 可变长度 自定义精度 定点数,财务、金额强制使用 示例 decimal(10,2):一共10位数字,小数占2位

重点提醒:涉及货币金额,绝对不能使用 float / double,统一使用 decimal!

二、字符串类型

重点区分 charvarchar;blob系列、超长文本类型简单了解即可。

类型 最大长度 说明
char(n) 0~255 字符 定长字符串 存储不足n位时自动补空格;查询速度快。适合长度固定数据:手机号、身份证
varchar(n) 0~65535 字节 可变长度字符串(日常最常用) 占用空间随实际内容变化,节约存储。适合姓名、地址
tinyblob / blob / mediumblob / longblob - 二进制字符串,用来存储文件二进制,开发不推荐数据库存文件
tinytext / text / mediumtext / longtext - 长文本,适合文章、大量备注内容;尽量避免大量使用

核心区别总结

char:定长,查询快,浪费空间;

varchar:变长,节省空间,查询略慢;

短且固定长度的数据选用 char,长短不固定文本选用 varchar。

三、日期类型

类型 展示格式 说明
date 2026-08-01 只保存年月日
time 15:30:00 只保存时分秒,极少单独使用
year 2026 仅保存年份,使用场景有限
datetime 2026-08-01 15:30:00 主流时间类型,保存年月日时分秒,不受时区影响
timestamp 2026-08-01 15:30:00 时间戳,受时区影响,存在时间范围限制,新项目优先 datetime

开发建议:不要使用字符串存储时间!时间范围筛选、时间函数运算无法高效执行。创建时间字段推荐:datetime default current_timestamp

四、选型简单总结

  1. 整数:状态用 tinyint;普通id用 int;分布式id、超大序号使用 bigint
  2. 小数金额:必须 decimal,拒绝 float、double
  3. 字符串:固定长度选 char;长短不定选 varchar;超大段文本使用 text
  4. 时间:优先 datetime,不推荐 timestamp、不使用字符串存储日期

如果你需要,我可以把这份笔记和之前 DDL 的笔记合并成一份完整 SQL 文档。

相关推荐
Logintern092 小时前
理解MySQL数据库的“事务与锁”
数据库·mysql
朱容zr3331332 小时前
为什么推荐使用自增主键?使用UUID作为主键的优缺点是什么?
java·运维·数据库·后端·mysql·面试·性能优化
麻瓜code2 小时前
【Redis 】数据类型、持久化与过期删除
数据库·redis·缓存
空杆推不起2 小时前
穿透 Flink CDC 表层用法:数据库日志捕获机制、Flink Source 运行时、端到端一致性底层原理详解
大数据·数据库·flink
朱容zr3331332 小时前
请解释“回表”的概念。
java·前端·数据库
软件技术NINI3 小时前
盗墓笔记html+css+js 2页
css·笔记·html
大黄说说3 小时前
EF Core 避坑指南:查询慢、循环查询、并发更新问题如何解决
java·服务器·数据库
城管不管3 小时前
重生——第五次面试2026.8.1一面
java·数据库·后端·ai·面试·职场和发展·agent
ocean'3 小时前
防火墙策略路由
linux·服务器·数据库