Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / возможно ли LIKE заставить использовать индекс? / 12 сообщений из 12, страница 1 из 1
05.12.2019, 11:10
    #39898467
sstatistic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возможно ли LIKE заставить использовать индекс?
Добрый день.

Код: sql
1.
SELECT * FROM table WHERE UPPER(data) LIKE '%TEXT%'




ilike проблему не решает.
...
Рейтинг: 0 / 0
05.12.2019, 11:19
    #39898473
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возможно ли LIKE заставить использовать индекс?
sstatistic,

Как ты это себе представляешь?
...
Рейтинг: 0 / 0
05.12.2019, 11:22
    #39898479
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возможно ли LIKE заставить использовать индекс?
sstatistic,

pg_trgm
...
Рейтинг: 0 / 0
05.12.2019, 11:50
    #39898503
sstatistic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возможно ли LIKE заставить использовать индекс?
crutchmaster
sstatistic,

Как ты это себе представляешь?


вжжжжжжух и запрос выполнился.
...
Рейтинг: 0 / 0
05.12.2019, 11:52
    #39898504
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возможно ли LIKE заставить использовать индекс?
вжжжжжжух
Вот с этого места подробнее.
...
Рейтинг: 0 / 0
05.12.2019, 12:31
    #39898530
gav21
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возможно ли LIKE заставить использовать индекс?
sstatistic
Добрый день.

Код: sql
1.
SELECT * FROM table WHERE UPPER(data) LIKE '%TEXT%'




ilike проблему не решает.

как то так:

CREATE EXTENSION pg_trgm;
create index ix on table using GIN (data gin_trgm_ops);
...
Рейтинг: 0 / 0
05.12.2019, 12:57
    #39898542
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возможно ли LIKE заставить использовать индекс?
gav21,

GIN (upper(data) gin_trgm_ops);
...
Рейтинг: 0 / 0
05.12.2019, 13:15
    #39898555
sstatistic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возможно ли LIKE заставить использовать индекс?
Большое спасибо!


Буду тестировать pg_trgm и GIN
...
Рейтинг: 0 / 0
16.01.2020, 12:45
    #39914764
Kr_Yury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возможно ли LIKE заставить использовать индекс?
Но индекс по data не используется и в таком случае
Код: plsql
1.
SELECT * FROM table WHERE data LIKE 'TEXT%'

Почему?
...
Рейтинг: 0 / 0
16.01.2020, 12:59
    #39914775
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возможно ли LIKE заставить использовать индекс?
Kr_Yury,

будет если локаль C. Для других локалей есть фокусы с сортировкой и потому нужны varchar_pattern_ops или text_pattern_ops: https://www.postgresql.org/docs/current/indexes-opclass.html
...
Рейтинг: 0 / 0
16.01.2020, 14:13
    #39914809
Kr_Yury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возможно ли LIKE заставить использовать индекс?
Melkij, при определении столбца и индекса правила сортировки не задавались, то есть использовалась сортировка по умолчанию. Поэтому не понимаю вашу ссылку. К тому же запросы с обычными операциями сравнения ('>','<', ...) индекс используют
...
Рейтинг: 0 / 0
16.01.2020, 14:27
    #39914819
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
возможно ли LIKE заставить использовать индекс?
Kr_Yury
Melkij, при определении столбца и индекса правила сортировки не задавались, то есть использовалась сортировка по умолчанию. Поэтому не понимаю вашу ссылку. К тому же запросы с обычными операциями сравнения ('>','<', ...) индекс используют

в том то и дело, что используемые постгрессом сортировки определены не в постгрессе, а в ос. (спасибо родному колхозу). и поэтому для like - ов приходится иметь отдельный индекс. не умеющий обычные сравнения (==сортировки) , но умеющий префексные лайки ((т.е. с внутренней сортировкой, гарантирующей , что любой постфикс сдвигает величину влево от префикса, что для ос-ных сортировок не гарантировано)) . что крайне бесит, когда хочется что-нть типа матерного-паса с осмысленными именами узлов, например.
новый индекс на каждый чих -- постгресс-вей
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / возможно ли LIKE заставить использовать индекс? / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]