主页 > 电脑硬件  > 

MySQL数据库的数据类型

MySQL数据库的数据类型
1.设置MySQL服务器的默认储存引擎 set default_storage_engine=MYISAM

2. 数值类型

整数类型

TINYINT:1字节,范围:-128~127(有符号),0~255(无符号)。适用于状态码、布尔值(MySQL无BOOL类型,用TINYINT(1)代替)。

SMALLINT:2字节,范围:-32768~32767。适用于小范围ID或计数。

MEDIUMINT:3字节,范围:-8388608~8388607。适用于中等范围数据。

INT:4字节,范围:-2147483648~2147483647。常用作主键或大计数。

布尔型BIGINT:8字节,范围极大。用于超大整数如全球唯一ID。

查看系统帮助 help +数据类型; 浮点数与定点数

FLOAT:4字节,单精度浮点数,近似值。适用于科学数据。

DOUBLE:8字节,双精度浮点数,精度更高。

DECIMAL(M,D):精确小数,M为总位数,D为小数位数。适用于财务计算。

区别

3. 日期与时间类型

DATE:3字节,格式'YYYY-MM-DD',存储日期。

TIME:3字节,格式'HH:MM:SS ',时间值。

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,自动转换时区。

YEAR:1字节,存储年份。

4. 字符串类型 短文本

CHAR(N):定长字符串,最多255字符。适合固定长度如MD5哈希。

VARCHAR(N):变长字符串,最多65535字节(实际受行大小限制)。适合可变长度如用户名。

BINARY/VARBINARY:类似CHAR/VARCHAR,但存储二进制数据,区分大小写。

长文本与二进制

TEXT系列:TINYTEXT (255B)、TEXT (64KB)、MEDIUMTEXT (16MB)、LONGTEXT (4GB)。存储大文本,如文章内容。

5. 枚举与集合

ENUM:单选字符串,最多65535个选项。存储时用整数索引,节省空间。

SET:多选字符串,最多64个成员。存储为位掩码。

BLOB系列:类似TEXT,但存储二进制数据(如图片、文件)。

JSON:存储JSON格式数据,自动验证有效性。支持路径查询和部分更新 6.空间数据类型

GEOMETRY、POINT、LINESTRING等:用于地理数据,需GIS函数支持。

8.注意事项与最佳实践

数值类型选择:

优先选择最小适用类型以减少存储。

精确计算用DECIMAL,避免FLOAT/DOUBLE的精度丢失。

日期类型:

跨时区应用使用TIMESTAMP,否则用DATETIME。

避免使用字符串存储日期,以利用日期函数。

字符串类型:

VARCHAR长度按需设置,避免过度分配。

TEXT/BLOB可能影响性能,考虑分表或文件存储。

ENUM/SET:

ENUM适用于静态选项,频繁变更的选项用关联表代替。

SET的成员数量有限,超出时需重新设计。

JSON类型:

适合半结构化数据,但复杂查询可能影响性能。

使用虚拟列加索引优化JSON查询。

索引优化:

短字段(如INT)索引效率高于长字段(如VARCHAR(255))。

避免在长文本字段(TEXT)上建索引,可用前缀索引。

标签:

MySQL数据库的数据类型由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“MySQL数据库的数据类型