Skip to content

Latest commit

 

History

History
62 lines (36 loc) · 3.39 KB

File metadata and controls

62 lines (36 loc) · 3.39 KB

MySQL 数据类型介绍

数据类型的分类

MySQL 常用的数据类型大致可以分为以下几类:

  • 数值类型:例如 TINYINTINTBIGINTFLOATDOUBLEDECIMAL
  • 日期时间类型:例如 YEARDATETIMEDATETIMETIMESTAMP
  • 字符串类型:例如 CHARVARCHARTEXTENUMSET
  • 二进制类型:例如 BITBINARYVARBINARYBLOB

不同类型决定了数据的存储方式、取值范围、比较规则以及空间占用,因此在建表阶段就应该尽量选对类型。

如何选择数据类型

选择字段类型时,通常遵循以下原则:

  1. 满足业务需求即可,不要盲目选择更大的类型。
  2. 能用数值类型就不要用字符串类型。
  3. 定长数据优先考虑 CHAR,变长数据优先考虑 VARCHAR
  4. 金额、精确计算等场景优先使用 DECIMAL,避免浮点误差。
  5. 日期时间信息应使用专门的时间类型,不要自行用字符串保存。
  6. 文本内容较长时使用 TEXT,二进制大对象使用 BLOB

字段类型选得合适,不仅有助于节省存储空间,也会直接影响查询效率、索引效果和后续维护成本。

MySQL 8.x 重要新特性

MySQL 8.x 在语法能力、性能优化和运维体验上都有明显增强。学习数据类型之后,了解这些新特性有助于理解为什么现代 MySQL 设计更强调规范建模与高可维护性。

1. 支持窗口函数和公用表表达式

MySQL 8.x 新增了窗口函数(Window Function)和公用表表达式(CTE)。这让排名、累计求和、分组内排序、递归查询等场景可以直接在 SQL 中完成,复杂查询的可读性和表达力明显提升。

2. JSON 能力更完整

MySQL 8.x 对 JSON 类型做了进一步增强,提供了更丰富的查询与修改函数,并支持更方便的 JSON 路径操作。对于半结构化数据场景,不再只能依赖字符串字段凑合存储。

3. 索引功能更灵活

MySQL 8.x 引入或增强了多个实用索引能力,例如降序索引、隐藏索引和函数索引。这样在性能调优时可以更灵活地验证索引方案,减少直接删除索引带来的风险。

4. 默认字符集更现代

MySQL 8.x 默认使用 utf8mb4,比早期版本更适合存储完整 Unicode 字符。对于中文、表情符号和多语言内容的支持更好,也减少了因为字符集选择不当导致的数据兼容问题。

5. 数据字典统一到 InnoDB

MySQL 8.x 使用事务型数据字典来管理元数据,减少了依赖文件系统元数据带来的不一致问题。数据库对象的信息管理更加统一,系统稳定性和可维护性更好。

6. DDL 操作更高效

部分 ALTER TABLE 操作在 MySQL 8.x 中可以更快完成,某些场景甚至支持接近即时的结构变更。这对于大表维护尤其重要,可以降低变更窗口和锁表影响。

7. 安全与权限管理增强

MySQL 8.x 提供了角色(Role)管理等能力,权限分配比旧版本更清晰。对于团队协作和生产环境权限治理,会比逐个用户手动授权更方便。

小结

如果你之前接触的是较老版本 MySQL,那么进入 8.x 之后最直观的感受通常是:SQL 更强、默认配置更合理、管理能力更成熟。因此,在学习基础数据类型时,也建议同步建立 “面向 MySQL 8.x 使用” 的思路。