Задать вопрос
@firstmixon

Как избавиться от снижения производительности при использовании функции length(text)?

Как раскочегарить постгрес?

select id,z,my_str
from t
where z in(...) 
and length(my_str)>2 --< вот с этим ограничение запрос на 1 000 000(записей, результат всего 2) идет 2 секунды, без него 0.4 секунды
  • Вопрос задан
  • 78 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик расширенный
    14 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
Решения вопроса 2
AshBlade
@AshBlade
Просто хочу быть счастливым
У тебя есть индекс на выражение?
Если нет, то логично что он делает фул скан таблицы.

Попробуй этот навесить

create index t_my_str_length_idx on t(length(my_str));
Ответ написан
Комментировать
sergey-gornostaev
@sergey-gornostaev Куратор тега PostgreSQL
Седой и строгий
Добавить индекс по выражению length(my_str)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы