my+MySQL Atlas数据库学习图谱
官方手册 ↗
LEARN BY QUERYING · MYSQL 8.4

让每一条 SQL
都有清晰的答案。

带着检查清单升级

区分教学环境、LTS 与 Innovation,并确认应用兼容性。

示例数据查询结果动手练习
ONE DATASET, MANY QUESTIONS

准备你的练习数据 4 位客户 · 5 笔订单

+

在自己的空白练习数据库中执行。每项示例都基于初始数据独立验证;事务课程会改变数据,再次练习时请使用新的空白数据库。金额采用 DECIMAL,表使用 InnoDB。

建表与示例数据
CREATE TABLE customers (
  id INT PRIMARY KEY,
  name VARCHAR(40) NOT NULL,
  nickname VARCHAR(40) NULL
) ENGINE=InnoDB;
CREATE TABLE orders (
  id INT PRIMARY KEY,
  customer_id INT NOT NULL,
  amount DECIMAL(10,2) NOT NULL,
  status VARCHAR(20) NOT NULL,
  ordered_at DATE NOT NULL,
  FOREIGN KEY (customer_id) REFERENCES customers(id)
) ENGINE=InnoDB;
INSERT INTO customers VALUES
  (1, 'Ada', 'ada'), (2, 'Linus', NULL),
  (3, 'Grace', 'grace'), (4, 'Guido', NULL);
INSERT INTO orders VALUES
  (1, 1, 120.00, 'paid', '2026-01-02'),
  (2, 1, 80.00, 'paid', '2026-01-05'),
  (3, 2, 200.00, 'pending', '2026-01-06'),
  (4, 2, 50.00, 'paid', '2026-01-07'),
  (5, 3, 150.00, 'paid', '2026-01-09');
下载 dataset.sql ↓
THE PRACTICE

版本与升级 03

结果基于统一数据集;计划与锁行为需结合实际环境
01MySQL 8.0

从 5.7 迁移到 8.0 的学习重点

CTE、窗口函数和数据字典等变化值得单独学习,升级需要同时核对 SQL 与客户端。

常见做法直接更换数据库镜像,却没有验证备份恢复、字符集和应用连接。

注意事项

不要把 8.0 的功能默认视为 5.7 支持。实际升级路径以源版本和目标版本的官方说明为准。

官方依据 ↗核对于 2026-10-06

动手练习

列出你当前项目最需要验证的三个查询。

查看参考答案 +

优先选择复杂 GROUP BY、字符比较和连接鉴权,再核对执行计划及返回结果。

02MySQL 8.4

区分 LTS 与 Innovation

LTS 面向长期维护,Innovation 提供更快的特性演进。本站用 8.4 作为主要教学基线。

常见做法只按版本号大小选择数据库,忽略更新策略和兼容性变化。

注意事项

教学基线不等于最新版本。官方发布索引每日检查,版本选择还应核对部署环境和依赖。

官方依据 ↗核对于 2026-10-06

动手练习

为什么现有项目可能优先选择 LTS?

查看参考答案 +

需要较稳定的功能集和更长的维护周期;最终仍取决于官方支持范围与业务验证。

03MySQL 8.4

升级前的可执行检查清单

先验证备份能恢复,再检查客户端、鉴权、保留字、执行计划和关键事务。

常见做法只测试能连接数据库,没有检查结果正确性和业务性能。

注意事项

8.4 默认禁用 mysql_native_password;不要用开启旧插件代替客户端升级评估。跨系列升级不能假设可直接降级。

官方依据 ↗核对于 2026-10-06

动手练习

如何验证升级后仍能正确结算订单?

查看参考答案 +

在隔离环境恢复数据,重放关键查询和事务,对比行数、金额、延迟及锁等待,并准备经过演练的回退方案。

FROM THE SOURCE

版本与官方更新

自动检查官方发布索引;中文课程由维护者核对更新。