MySQL数据类型

常规字段

(如MySQL)例如,INT(11)中的11就是显示宽度,不影响存储范围,只影响显示时的格式。
数据类型
字节数
有符号取值范围
无符号取值范围
最大可变长度
TINYINT
1
-128 到 127
0 到 255
3
SMALLINT
2
-32768 到 32767
0 到 65535
5
MEDIUMINT
3
-8388608 到 8388607
0 到 16777215
8
INT/INTEGER
4
-2147483648 到 2147483647
0 到 4294967295
10
BIGINT
8
-9223372036854775808 到 9223372036854775807
0 到 18446744073709551615
20
列类型
需要的存储量
FLOAT(X)
4 如果 X < = 24 或 8 如果 25 < = X < = 53
FLOAT
4 个字节
DOUBLE
8 个字节
DOUBLE PRECISION
8 个字节
REAL
8 个字节
DECIMAL(M,D)
M字节(D+2 , 如果M < D)
NUMERIC(M,D)
M字节(D+2 , 如果M < D)

日期和时间

列类型
需要的存储量
关键区别
适用场景
DATE
3 个字节
仅存储日期(年-月-日),范围:'1000-01-01' 到 '9999-12-31'
记录生日、注册日期等仅需日期的场景
DATETIME
8 个字节
存储日期+时间(年-月-日 时:分:秒),范围:'1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'
需要精确日期时间的场景(如订单时间),且不涉及时区转换
TIMESTAMP
4 个字节
存储日期+时间,范围:'1970-01-01 00:00:01' UTC 到 '2038-01-19 03:14:07' UTC
记录时间戳(如日志时间),需自动时区转换或节省存储空间
TIME
3 个字节
仅存储时间(时:分:秒),范围:'-838:59:59' 到 '838:59:59'
记录时间段(如课程时长、营业时间)
YEAR
1 字节
仅存储年份,范围:1901 到 2155(MySQL)
记录年份信息(如入学年份、成立年份),需最小化存储空间

Blob长度

BLOB最大可为65535字节(64 KB)。
MEDIUMBLOB for 16777215 byte (16 MB)
LONGBLOB for 4294967295 byte (4 GB)

Mysql Text文本长度

对于utf-8:一个中文占三个字符,一个英文占一个字符
对于GBK:一个中文占两个字符,一个英文占一个字符
有前面两个知识点总结一下就是
如果使用的是utf-8 ,text并不能存65535个中文字符而是 65535/3 = 21845 即text只能存21845个文字。GBK同理。
  • 使用text时千万要注意,防止超长如不够用了可以使用mediumtext或者longtext
TINYTEXT
256 bytes
TEXT
65,535 bytes
~64kb
MEDIUMTEXT
16,777,215 bytes
~16MB
LONGTEXT
4,294,967,295 bytes
~4GB
Loading...
文章列表
王小扬博客
云原生
Git
Elasticsearch
Apollo
产品
Think
生活技巧
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP
AI