@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 секунды
  • Вопрос задан
  • 61 просмотр
Решения вопроса 2
AshBlade
@AshBlade
Просто хочу быть счастливым
У тебя есть индекс на выражение?
Если нет, то логично что он делает фул скан таблицы.

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

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

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

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