sql - PostgreSQL select distinct with like 条件

标签 sql postgresql postgresql-performance

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

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

我需要这样的东西:

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

但是速度很慢。 8M 条记录需要 4-5 秒。

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

最佳答案

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%';

关于sql - PostgreSQL select distinct with like 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42496808/

相关文章:

mysql - SQL 从两个不同的表中添加和减去数据

MySQL SubString 提取精确部分

sql - 使用标准 SQL 高效检测并发插入

postgresql - 将网站和数据库放在不同的服务器上有什么缺点或安全问题吗?

sql - 如何连接 PostgreSQL 'group by' 查询中字符串字段的字符串?

sql - 快速获取过去 30 天的最低价格以及之前的最后价格

postgresql - 我的索引或列类型是否减慢了我的查询速度?

python - SAP HANA Python 连接 HDBCLI

postgresql - 使用 hstore 数据正确格式化 CSV 以进行 Postgres 导入

sql - LIMIT 的小结果查询比 100 行以上的查询慢 1000 倍