从 5.7 迁移到 8.0 的学习重点
CTE、窗口函数和数据字典等变化值得单独学习,升级需要同时核对 SQL 与客户端。
常见做法直接更换数据库镜像,却没有验证备份恢复、字符集和应用连接。
不要把 8.0 的功能默认视为 5.7 支持。实际升级路径以源版本和目标版本的官方说明为准。
动手练习
列出你当前项目最需要验证的三个查询。
查看参考答案 +
优先选择复杂 GROUP BY、字符比较和连接鉴权,再核对执行计划及返回结果。
区分教学环境、LTS 与 Innovation,并确认应用兼容性。
在自己的空白练习数据库中执行。每项示例都基于初始数据独立验证;事务课程会改变数据,再次练习时请使用新的空白数据库。金额采用 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');CTE、窗口函数和数据字典等变化值得单独学习,升级需要同时核对 SQL 与客户端。
常见做法直接更换数据库镜像,却没有验证备份恢复、字符集和应用连接。
不要把 8.0 的功能默认视为 5.7 支持。实际升级路径以源版本和目标版本的官方说明为准。
列出你当前项目最需要验证的三个查询。
优先选择复杂 GROUP BY、字符比较和连接鉴权,再核对执行计划及返回结果。
LTS 面向长期维护,Innovation 提供更快的特性演进。本站用 8.4 作为主要教学基线。
常见做法只按版本号大小选择数据库,忽略更新策略和兼容性变化。
教学基线不等于最新版本。官方发布索引每日检查,版本选择还应核对部署环境和依赖。
为什么现有项目可能优先选择 LTS?
需要较稳定的功能集和更长的维护周期;最终仍取决于官方支持范围与业务验证。
先验证备份能恢复,再检查客户端、鉴权、保留字、执行计划和关键事务。
常见做法只测试能连接数据库,没有检查结果正确性和业务性能。
8.4 默认禁用 mysql_native_password;不要用开启旧插件代替客户端升级评估。跨系列升级不能假设可直接降级。
如何验证升级后仍能正确结算订单?
在隔离环境恢复数据,重放关键查询和事务,对比行数、金额、延迟及锁等待,并准备经过演练的回退方案。
本主题没有匹配内容,请调整搜索或版本条件。
自动检查官方发布索引;中文课程由维护者核对更新。
8.0 系列修复与版本记录,供既有环境核对。
主要教学基线的发布、修复与兼容性资料。
发现官方手册中的其他版本;教学基线不等于最新版本。