架构与数据类型
→ 返回 MySQL
命令速查见 基础命令。
架构
客户端
└─► 连接层(连接管理、认证、线程池)
└─► SQL 层(解析 → 优化 → 执行)
└─► 存储引擎层(InnoDB / MyISAM / ...)
└─► 磁盘(数据文件、日志文件)
InnoDB 支持事务、行锁、MVCC、外键,绝大多数业务表首选。
| 层 | 职责 |
|---|---|
| 连接层 | 认证、权限、线程/连接池(max_connections) |
| SQL 层 | 解析器、优化器(选索引、JOIN 顺序)、执行器 |
| 存储引擎 | 真正读写数据页;不同引擎 API 一致 |
数据类型
整数
| 类型 | 字节 | 范围(有符号) |
|---|---|---|
| TINYINT | 1 | -128 ~ 127 |
| SMALLINT | 2 | -32768 ~ 32767 |
| INT | 4 | -21亿 ~ 21亿 |
| BIGINT | 8 | ±9.2×10¹⁸ |
UNSIGNED 可让同字节数范围翻倍;主键、计数优先 BIGINT。
字符串
| 类型 | 说明 |
|---|---|
| CHAR(n) | 定长,最多 255 |
| VARCHAR(n) | 变长,按实际长度 + 长度前缀 |
| TEXT | 大文本,不宜直接完整列索引 |
| JSON | 5.7+;8.0+ 函数索引、多值索引 |
时间
| 类型 | 说明 |
|---|---|
| DATE | 仅日期 |
| DATETIME | 无时区,推荐默认 |
| TIMESTAMP | 自动时区转换,2038 上限 |