MySQL 数据类型详解与选型指南
在数据库设计中,数据类型的选择往往被忽视,但它直接关系到存储效率、查询性能以及数据的准确性。选错类型可能导致空间浪费、精度丢失甚至逻辑错误。作为开发者,我们需要对 MySQL 提供的各类类型有清晰的理解。
一、数据类型概览
MySQL 的数据类型主要分为数值型、字符串型、日期时间型和枚举集合型等。理解它们的底层机制是合理选型的前提。

二、数值类型
数值类型涵盖了整数和浮点数。除了常见的 INT、BIGINT 外,还有一些特殊类型需要注意。

Bit 类型
BIT 类型用于存储位字段值。它常用于标志位或二进制数据。虽然功能强大,但在业务逻辑中直接使用较少,通常配合位运算处理。

Float 与 Decimal
这是最容易踩坑的地方。很多场景下我们习惯用 FLOAT 存金额,但这其实是不推荐的。
Float 类型
FLOAT[(m,d)][UNSIGNED]:M 指定显示长度,D 指定小数位数,占用空间 4 个字节。
- 范围示例:
FLOAT(4,2)表示 -99.99~99.99。 - 注意:MySQL 在保存值时会进行四舍五入。更重要的是,
FLOAT是近似值类型,存在精度丢失风险。其有效精度大约是 7 位十进制数。

Decimal 类型
DECIMAL(M,D)[UNSIGNED]:定点数,M 指定总长度,D 指定小数点后的位数。
- 范围示例:
DECIMAL(5,2)表示 -999.99~999.99。 DECIMAL(5,2) UNSIGNED表示 0~999.99。








