【发布时间】:2011-07-29 23:54:33
【问题描述】:
只是把这个扔在这里,因为我听到我同事的困境后变得很好奇。
在一般的生产环境查询中,先排序再分组还是先分组再排序会更快吗?
是的,一个通用生产环境。我知道这取决于很多事情:您查询的行数、初始结果集的行数、列数、我使用的数据库架构、明天是否一定会下雨等等。我知道,我知道。我说一般是因为我真的没有任何界限来明确地设置我的这种好奇心。
根据您的经验,让我们说一下,哪个更快?
【问题讨论】:
-
我从未尝试过比较它们,但如果您发现其中的差异,我会感到非常惊讶。 SQL 引擎不会为您优化吗?
-
呸,想关闭不是一个真正的问题。答:这取决于数据库、其中的内容、架构、索引等。
-
性能问题没有具体细节是无法回答的!您不妨问“哪个更快,5 速手动还是 6 速自动?”没有具体说明,你知道,你在说什么车。
-
请定义“分组前先排序”的真正含义......无论如何,分组是排序的排序......几乎很明显,如果您希望 GROUP BY 的结果排序然后首先减少数据集(通过分组)更快。但只需在您的数据库引擎中查找查询计划,看看您的数据库是怎么想的……
-
@Will ~ 如果它与您对真实问题的想法不符,请成为我的客人。没什么大不了的。
标签: sql algorithm sorting performance group-by