怎样优化 MySQL DISTINCT?
查看完整题解
参考回答
直接回答
先确认去重的业务粒度,减少进入去重阶段的行和列,再看有序索引能否帮助。DISTINCT 的成本取决于数据量、列宽、连接与实际执行计划。
讲清原理
如果重复来自错误的一对多连接,去重可能掩盖语义问题。只需判断是否存在时,可评估 EXISTS,避免先展开很多行再去重。
例子与易错点
选择 DISTINCT id 与 DISTINCT id, name 可能返回不同数量。先保证结果等价,再看临时结果、排序或索引访问成本。
相关题 · 第 122 题
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。