|
Попасть в индекс при использовании replace
|
|||
---|---|---|---|
#18+
Использую СУБД Postgresql Есть индекс по полю Код и индекс по условию lower("Код") В запросах select * from "Коды" where "Код" like 'Оди%' select * from "Коды" where lower("Код") like 'Оди%' Попадаю в нужные индексы. Проблема возникает при желании удлаить пробелы: select * from "Коды" where replace("Код", ' ','') like 'Оди%' select * from "Коды" where replace(lower("Код"), ' ','') like 'Оди%' Как правильно создать индекс, чтобы использовался в 2 проблемных запросах? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2018, 06:07 |
|
Попасть в индекс при использовании replace
|
|||
---|---|---|---|
#18+
Использую СУБД Postgresql Есть индекс по полю Код и индекс по условию lower("Код") В запросах Код: sql 1. 2. 3. 4. 5. 6.
Попадаю в нужные индексы. Проблема возникает при желании удалить пробелы: Код: sql 1. 2. 3. 4. 5. 6.
Как правильно создать индекс, чтобы использовался в 2 проблемных запросах? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2018, 06:08 |
|
Попасть в индекс при использовании replace
|
|||
---|---|---|---|
#18+
polin11, Как вариант использовать дополнительный функциональный индекс Код: plsql 1.
или Код: plsql 1.
применение почти любой функции к столбцу из индекса приводит к тому что индекс перестает использоваться ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2018, 21:40 |
|
|
start [/forum/topic.php?fid=53&msg=39741583&tid=1995442]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
2ms |
others: | 18ms |
total: | 135ms |
0 / 0 |