PostgreSQL выбирают разные с одинаковым условием

У меня есть большая таблица с несколькими миллионами записей. Каждая запись содержит тип, пришедший из внешнего источника. Я знаю, что количество типов составляет около 100 - 200.

Мне нужно получить подмножество типов для поиска подсказки.

Мне нужно что-то вроде этого:

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

Но это очень медленно. 4-5 секунд для 8М записей.

Мой вопрос: могу ли я как-то улучшить производительность этого выбора или использовать другой запрос?

1 ответ

distinct а также group 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%';
Другие вопросы по тегам