【发布时间】:2015-03-11 20:27:13
【问题描述】:
使用 DISTINCT 对 SQL 查询的执行计划的查询成本有很大影响吗?
在有 100,000 行的表上,会有什么区别:
select * from TABLE
和
select distinct(*) from TABLE
以毫秒为单位?
【问题讨论】:
-
如果您在该表上有一个键,则两者之间不会有任何区别。由于您要选择所有字段,因此键将使每一行都不同
-
distinct是不是函数 -
我认为这将是一些差异,因为不同的检查是否有任何差异,但全选没有。
-
会有很大的不同。数据库必须对所有列上的所有行进行排序或散列。只要看看执行计划,你就会明白。但是,无法以毫秒为单位来量化额外成本。取决于您的硬件、列数和列的数据类型。
标签: sql database query-optimization distinct