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