下面是一份 MySQL 从入门到高级的完整知识体系总结。
这可以当作一个 MySQL 学习路线 + 技术全景图。
一、MySQL 基础(入门阶段)
这一阶段主要掌握 SQL 基础语法和基本操作。
1 SQL 基本分类
| 类型 | 含义 |
|---|---|
| DDL | 数据定义语言 |
| DML | 数据操作语言 |
| DQL | 数据查询语言 |
| DCL | 数据控制语言 |
示例:
CREATE TABLE users(id INT);
INSERT INTO users VALUES(1);
SELECT * FROM users;
GRANT SELECT ON db.* TO user;
2 基础查询语法
最核心查询结构:
SELECT 字段
FROM 表
WHERE 条件
GROUP BY 分组
HAVING 分组条件
ORDER BY 排序
LIMIT 分页;
常见查询:
SELECT name FROM users WHERE age > 18;
SELECT * FROM users ORDER BY create_time DESC LIMIT 10;
3 CRUD 操作
插入数据
INSERT INTO users(name,age)
VALUES('Tom',20);
修改数据
UPDATE users
SET age = 21
WHERE id = 1;
删除数据
DELETE FROM users
WHERE id = 1;
二、MySQL 进阶(数据库设计)
这一阶段重点是 表设计与数据类型。
1 数据类型
常见数据类型:
| 类型 | 示例 |
|---|---|
| 整数 | INT / BIGINT |
| 字符串 | VARCHAR |
| 金额 | DECIMAL |
| 时间 | DATETIME |
| 文本 | TEXT |
示例表:
CREATE TABLE users(
id BIGINT PRIMARY KEY,
username VARCHAR(50),
balance DECIMAL(10,2),
create_time DATETIME
);
2 约束(Constraint)
常见约束:
| 约束 | 作用 |
|---|---|
| PRIMARY KEY | 主键 |
| UNIQUE | 唯一 |
| NOT NULL | 非空 |
| DEFAULT | 默认值 |
| FOREIGN KEY | 外键 |
3 索引(Index)
索引是 MySQL 性能核心。
创建索引:
CREATE INDEX idx_name
ON users(name);
常见索引:
| 类型 | 说明 |
|---|---|
| 主键索引 | PRIMARY KEY |
| 唯一索引 | UNIQUE |
| 普通索引 | INDEX |
| 联合索引 | 多列索引 |
三、MySQL 高级查询
高级 SQL 是开发中最重要的部分。
1 JOIN 联表查询
SELECT u.name, o.order_id
FROM users u
JOIN orders o
ON u.id = o.user_id;
常见 JOIN:
| 类型 | 含义 |
|---|---|
| INNER JOIN | 内连接 |
| LEFT JOIN | 左连接 |
| RIGHT JOIN | 右连接 |
2 子查询
SELECT name
FROM users
WHERE id IN (
SELECT user_id FROM orders
);
3 聚合统计
SELECT city, COUNT(*)
FROM users
GROUP BY city;
4 窗口函数(MySQL 8)
例如排名:
SELECT name,
RANK() OVER (ORDER BY salary DESC)
FROM employees;
四、MySQL 内置函数
MySQL 内置函数非常多。
主要类别:
| 类别 | 示例 |
|---|---|
| 字符串函数 | CONCAT |
| 数值函数 | ROUND |
| 日期函数 | NOW |
| 条件函数 | IF |
| 聚合函数 | COUNT |
示例:
SELECT CONCAT(first_name,last_name)
FROM users;
五、MySQL 架构原理
MySQL 内部结构:
Client
│
Connection
│
SQL Parser
│
Optimizer
│
Execution Engine
│
Storage Engine
核心组件:
| 模块 | 作用 |
|---|---|
| Parser | SQL解析 |
| Optimizer | 查询优化 |
| Executor | 执行 |
| Storage Engine | 存储 |
六、存储引擎
最重要存储引擎:
| 引擎 | 特点 |
|---|---|
| InnoDB | 事务支持 |
| MyISAM | 读快 |
| Memory | 内存表 |
默认引擎:
InnoDB
InnoDB 核心特性
| 特性 | 说明 |
|---|---|
| 行级锁 | 高并发 |
| MVCC | 多版本并发 |
| 事务支持 | ACID |
| 外键支持 | 数据一致 |
七、事务与并发控制
事务(Transaction)具有 ACID 特性:
| 特性 | 含义 |
|---|---|
| A | 原子性 |
| C | 一致性 |
| I | 隔离性 |
| D | 持久性 |
事务示例:
START TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id=1;
UPDATE accounts SET balance = balance + 100 WHERE id=2;
COMMIT;
事务隔离级别
| 隔离级别 | 问题 |
|---|---|
| READ UNCOMMITTED | 脏读 |
| READ COMMITTED | 不可重复读 |
| REPEATABLE READ | 默认 |
| SERIALIZABLE | 串行 |
八、MySQL 性能优化
性能优化核心:
SQL优化
索引优化
架构优化
1 SQL 优化
避免:
SELECT *
推荐:
SELECT id,name
2 索引优化
常见原则:
最左前缀原则
避免函数索引
避免隐式类型转换
3 EXPLAIN
查看 SQL 执行计划:
EXPLAIN SELECT * FROM users WHERE id=1;
关键字段:
| 字段 | 说明 |
|---|---|
| type | 查询类型 |
| key | 使用索引 |
| rows | 扫描行数 |
九、MySQL 高级架构
生产环境通常采用:
主从复制
读写分离
分库分表
1 主从复制
结构:
Master
↓
Replica
用途:
读写分离
备份
高可用
2 分库分表
解决问题:
数据量过大
查询慢
方案:
水平分表
垂直分库
十、MySQL 学习路线总结
MySQL 技术体系:
SQL基础
↓
数据库设计
↓
索引优化
↓
事务与锁
↓
存储引擎
↓
查询优化
↓
高可用架构
十一、MySQL 开发核心技能
真正工作中最重要的能力:
| 技能 | 重要程度 |
|---|---|
| SQL 编写 | ⭐⭐⭐⭐⭐ |
| 索引设计 | ⭐⭐⭐⭐⭐ |
| SQL 优化 | ⭐⭐⭐⭐ |
| 数据库设计 | ⭐⭐⭐⭐ |
| 架构设计 | ⭐⭐⭐ |
✅ 总结
学习 MySQL 可以分为五个阶段:
入门
SQL基础
进阶
数据库设计
高级
索引 + 查询优化
专家
事务 + 锁 + InnoDB
架构
分库分表 + 高可用
掌握这些基本可以覆盖 90% 的后端数据库开发场景。
如果你愿意,我可以再整理一份 “MySQL 核心知识脑图(完整版,一张图看懂 MySQL 全体系)”,很多后端工程师会用它来复习和面试准备。