【发布时间】:2020-04-07 20:57:56
【问题描述】:
我有一张大表(数百万行)。
我必须经常获取某些列的 DISTINCT 值。在我的例子中,这些列实际上只有很少的不同值(几个到几十个)
最有效的方法是什么?
【问题讨论】:
标签: sql sql-server performance
我有一张大表(数百万行)。
我必须经常获取某些列的 DISTINCT 值。在我的例子中,这些列实际上只有很少的不同值(几个到几十个)
最有效的方法是什么?
【问题讨论】:
标签: sql sql-server performance
在列上添加索引,然后运行:
select distinct column
from t;
【讨论】:
要添加到大型数据库中的 Gordons 答案,除了索引之外,您还可以对数据进行分区。数据的分区就像
Table_1 (id)
Select distinct records from table
Where id <1000
Table_2 (id)
Select distinct records from table
Where id >1000
Actual table =table_1+table_2 (id)
只是一个示例来说明这个分区并不是额外的,它实际上是同一个表或数据库,只是它根据唯一列被拆分
【讨论】: