当前位置: 首页 > news >正文

MySQL数据库的数据类型

1.设置MySQL服务器的默认储存引擎

set default_storage_engine=MYISAM

2. 数值类型

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

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

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

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

  • 布尔型BIGINT8字节,范围极大。用于超大整数如全球唯一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)上建索引,可用前缀索引。

相关文章:

  • 刷题日记——部分二分算法题目分享
  • C++学习之C++初识、C++对C语言增强、对C语言扩展
  • 批量设置 Word 样式,如字体信息、段落距离、行距、页边距等信息
  • MOE(Mixture of Experts)门控网络的实现与优化
  • pywin32连接到WMI接口获取指定名称程序路径
  • 【Java数据结构】哈希表
  • 【DOM 型 XSS举例】
  • 开放鸿蒙认证,OpenHarmony兼容性认证介绍
  • 2025统计建模大赛选题参考?
  • 算法系列之数据结构-二叉树
  • Blueprint —— Flow Control
  • C#中泛型的协变和逆变
  • 机器学习之集成学习思维导图
  • 【人工智能】Python中的迁移学习:使用预训练模型进行分类任务
  • 【前端】CSS 备忘清单(超级详细!)
  • 内核进程调度队列(linux的真实调度算法) ─── linux第13课
  • 【经验分享】Ubuntu vmware虚拟机存储空间越来越小问题(已解决)
  • Spring IoC配置(xml+组件类的生命周期方法)
  • 精准汇报:以明确答复助力高效工作
  • 网络原理----TCP/IP(3)
  • 专访 | 杜普兰蒂斯:爱上中国文化,下一步努力提升速度
  • 牛市早报|今年第二批810亿元超长期特别国债资金下达,支持消费品以旧换新
  • 当初没有珍惜巴特勒的热火,被横扫出局后才追悔莫及
  • 这座“蚌埠住了”的城市不仅会接流量,也在努力成为文旅实力派
  • 央行副行长:增强外汇市场韧性,坚决对市场顺周期行为进行纠偏
  • 伊朗南部港口火势蔓延,部分集装箱再次发生爆炸