|
Отказывается использовать индекс
|
|||
---|---|---|---|
#18+
Доброго всем дня! Второй день голову ломаю. Не могу заставить постгрю использовать функциональный индекс по json вместе с LIKE в таком запросе: SELECT my_table_id FROM my_table WHERE json_extract_path_text(("json_column"#>> '{}')::json, 'column_lvl2') like '%ZZ111' индекс соответственно CREATE INDEX idx_my_table_json((json_extract_path_text(("json_column"#>> '{}')::json, 'column_lvl2')) text_pattern_ops); при этом если указываю в запросе не "LIKE" а "=" то индекс цепляется. пробовал делать с опциями varchar_pattern_ops, text_ops - не помогло. Хэлп ми плиз! Может кто знает куда смотреть и таки что делать? )) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 17:19 |
|
Отказывается использовать индекс
|
|||
---|---|---|---|
#18+
alex_by_guest, так а каким образом по btree производить постфиксный поиск? Правильно, никак. Перепишите в префиксный или делайте триграммный индекс. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 17:30 |
|
Отказывается использовать индекс
|
|||
---|---|---|---|
#18+
Melkij, ммм... сорри, но требуется пояснение, я не очень в теме индексации/поиска )) что надо сделать то? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 17:41 |
|
Отказывается использовать индекс
|
|||
---|---|---|---|
#18+
alex_by_guest Melkij, ммм... сорри, но требуется пояснение, я не очень в теме индексации/поиска )) что надо сделать то? like по индексу с text_pattern_ops работает только на условия вида some_text% но никак не на условия вида %sometext. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 18:02 |
|
Отказывается использовать индекс
|
|||
---|---|---|---|
#18+
Maxim Boguk, Да вы правы! проверил на запросе SELECT my_table_id FROM my_table WHERE json_extract_path_text(("json_column"#>> '{}')::json, 'column_lvl2') like 'ZZ111%' - индекс используется! Спасибо! А как построить индекс то для поиска '%ZZ111'? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 19:39 |
|
Отказывается использовать индекс
|
|||
---|---|---|---|
#18+
alex_by_guest Maxim Boguk, Да вы правы! проверил на запросе SELECT my_table_id FROM my_table WHERE json_extract_path_text(("json_column"#>> '{}')::json, 'column_lvl2') like 'ZZ111%' - индекс используется! Спасибо! А как построить индекс то для поиска '%ZZ111'? Например использовать reverse функцию и для поля и для значения типа reverse(json_extract_path_text(("json_column"#>> '{}')::json, 'column_lvl2')) like reverse('%ZZ111'); ну и индекс соответствующий. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 19:54 |
|
|
start [/forum/topic.php?fid=53&fpage=6&tid=1993816]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 138ms |
0 / 0 |