Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

怎样优化 MySQL DISTINCT?

先说出你的答案

定义边界、关键机制、一个反例;P8题再补容量、失败与验证。

查看完整题解

参考回答

直接回答

先确认去重的业务粒度,减少进入去重阶段的行和列,再看有序索引能否帮助。DISTINCT 的成本取决于数据量、列宽、连接与实际执行计划。

讲清原理

如果重复来自错误的一对多连接,去重可能掩盖语义问题。只需判断是否存在时,可评估 EXISTS,避免先展开很多行再去重。

例子与易错点

选择 DISTINCT id 与 DISTINCT id, name 可能返回不同数量。先保证结果等价,再看临时结果、排序或索引访问成本。

相关题 · 第 122 题

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。