MySQL 8.0 新特性
面试官问:"你用过 MySQL 8.0 吗?有哪些新特性?"
小陈说:"8.0 更快?"
面试官追问:"有了解过窗口函数吗?"
小陈说:"...像 GROUP BY 那样分组?"
面试官继续追问:"那你知道 ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...) 怎么用吗?"
小陈彻底卡住了。
MySQL 8.0 是 MySQL 史上最重要的版本升级之一。窗口函数、CTE、Hash Join 等特性让 MySQL 的 SQL 能力大幅提升。知道这些新特性的候选人,说明他对 MySQL 有持续关注,而不是固守 5.7 时代的技术栈。
一、窗口函数(Window Functions)🔴
1.1 什么是窗口函数
窗口函数在一组行上执行聚合/排名操作,但不减少行数——每行仍然保留,只是多了一列计算结果。
1.2 常见窗口函数
1.3 典型场景
1.4 ❌ 错误示范
候选人原话:"窗口函数就是 GROUP BY,只是写法不一样。"
问题诊断:GROUP BY 减少行数,窗口函数不减少行数。两者有本质区别。
候选人原话 2:"MySQL 5.7 也有窗口函数。"
问题诊断:窗口函数是 MySQL 8.0 才引入的特性。5.7 不支持。
【面试官心理】 窗口函数是 MySQL 8.0 最实用的新特性。能说出窗口函数的实际应用场景(如排名、累计、环比)的候选人,说明他不只是看了新特性介绍,而是真正用过。
二、通用表表达式(CTE)🔴
2.1 递归 CTE
2.2 非递归 CTE
三、Hash Join 🟡
3.1 MySQL 8.0 的 Hash Join
3.2 Hash Join vs NLJ
四、其他重要特性 🟡
4.1 JSON 函数增强
4.2 窗口函数 + CTE 组合
4.3 GIS 增强
【面试官心理】 MySQL 8.0 新特性是 MySQL 面试中的加分项。能说清楚窗口函数和 CTE 实际用法的候选人,说明他对 SQL 有深入实践,不只是CRUD 工程师。