PostgreSQL选择不同的条件

时间:2017-02-27 22:18:16

标签: sql postgresql postgresql-performance

我有几百万条记录的大表。每条记录都包含来自外部来源的类型。我知道类型的数量大约是100 - 200.

我需要获取搜索提示的类型子集。

我需要这样的东西:

select distinct my_type from my_table where my_type like '%XXX%';

但它很慢。对于8M记录,4-5秒。

我的问题:我可以以某种方式提高此选择的性能或使用不同的查询吗?

1 个答案:

答案 0 :(得分:2)

distinctgroup by采用不同的代码路径,因此您可以测试其中的每一个:

select my_type
  from (select distinct my_type from my_table) as t 
  where my_type like '%XXX%';

select my_type
  from (select my_type from my_table group by my_type) as t 
  where my_type like '%XXX%';