为什么不能在使用GROUP BY时使用DISTINCT?

Yad*_*ada 12 mysql sql

根据MySQL性能维基的提示:

当您拥有或可以使用GROUP BY时,请勿使用DISTINCT.

有人可以发布可以使用GROUP BY而不是DISTINCT的查询示例吗?

Mar*_*ers 8

如果您知道结果中的两列始终是直接相关的,那么执行此操作的速度会更慢:

SELECT DISTINCT CustomerId, CustomerName FROM (...)
Run Code Online (Sandbox Code Playgroud)

比这个:

SELECT CustomerId, CustomerName FROM (...) GROUP BY CustomerId
Run Code Online (Sandbox Code Playgroud)

因为在第二种情况下它只需要比较id,但在第一种情况下它必须比较两个字段.这是MySQL特有的技巧.它不适用于其他数据库.

  • 这两个问题不一样,是吗?在第二个中,您只选择不同的ID,而不是不同的名称. (2认同)