数值类型

数值类型

数字类型算是最简单的了,主要差异在于各个类型的取值范围大小限制,和对存储空间字节数的需求。数字类型当然是在满足情况的条件下越短越好,一方面 MySQL 每行有 65535 字节长度的限制,同时更宽的数据类型意味着对 CPU、内存、磁盘 IO 带来压力。

Type Storage (Bytes) Minimum Value Signed Minimum Value Unsigned Maximum Value Signed Maximum Value Unsigned
TINYINT 1 -128 0 127 255
SMALLINT 2 -32768 0 32767 65535
MEDIUMINT 3 -8388608 0 8388607 16777215
INT 4 -2147483648 0 2147483647 4294967295
BIGINT 8 -263 0 2^63-1 2^64-1

定点类型

类型 长度
TINYINT 1
SMALLINT 2
MEDIUMINT 3
INTEGER 4
BIGINT 5

在数据库设计的时候,常常看到这些整形有个前缀长度,其实这对其类型本身的存储长度和精度没有影响,只会关系到某些交互式工具显示出来的字符个数。

浮点类型

类型 长度
FLOAT 4
FLOAT(p) [0,24] 4
FLOAT(p) [25,53] 8
DOUBLE,REAL 8

计算机的浮点运算都是不精确的,如果要实现精确浮点运算,就需要使用 DECIMAL 类型。

上一页
下一页