Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
02.12.2018, 06:07
|
|||
---|---|---|---|
|
|||
Попасть в индекс при использовании 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:08
|
|||
---|---|---|---|
|
|||
Попасть в индекс при использовании replace |
|||
#18+
Использую СУБД Postgresql Есть индекс по полю Код и индекс по условию lower("Код") В запросах Код: sql 1. 2. 3. 4. 5. 6.
Попадаю в нужные индексы. Проблема возникает при желании удалить пробелы: Код: sql 1. 2. 3. 4. 5. 6.
Как правильно создать индекс, чтобы использовался в 2 проблемных запросах? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.12.2018, 21:40
|
|||
---|---|---|---|
|
|||
Попасть в индекс при использовании replace |
|||
#18+
polin11, Как вариант использовать дополнительный функциональный индекс Код: plsql 1.
или Код: plsql 1.
применение почти любой функции к столбцу из индекса приводит к тому что индекс перестает использоваться ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=53&mobile=1&tid=1995442]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
23ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
others: | 259ms |
total: | 356ms |
0 / 0 |