SQL查询 - 使用DISTINCT的成本

时间:2015-01-13 19:06:42

标签: sql database query-optimization distinct

使用DISTINCT对SQL查询执行计划的查询成本有很大影响吗?

在一个包含100,000行的表格中,它们之间有什么区别:

select * from TABLE

select distinct(*) from TABLE 

以毫秒计?

1 个答案:

答案 0 :(得分:4)

通常,答案是很多毫秒。 select distinct相当于在所有列上执行group by。您不可能在所有列上都有索引,因此索引通常不会非常有用。

某些数据库引擎可能足够聪明,可以检测其中一列是声明distinct还是primary key。在这种情况下,可能会有一个优化查询的引擎。

但是,一般情况下,除非您需要,否则应避免使用select distinct