|
Можно ли как-то получить профит от индекса при использовании выражений?
|
|||
---|---|---|---|
#18+
Есть EAV-таблица с функциональным индексом: Код: plsql 1.
В таблице хранятся короткие значения (до 20 символов). Эти данные использовались только для просмотра (не для связей), поэтому для удобства пользователей к ним можно было добавить короткое пояснение (через пробел). То есть значение могло быть задано как "192.168.1.1", так и "192.168.1.1 Шлюз". Но теперь нужно сопоставлять эти данные с другой таблицей: Код: plsql 1. 2. 3.
Тут все хорошо, индекс используется, но в таком варианте значения с пояснениями пролетают. Если же делать более сложное соединение (с помощью instr или regexp_substr), то соединение работает, а вот индекс уже нет. Не подскажите, можно ли тут что-то придумать, чтобы и индекс задействовать, и опциональное пояснение сохранить? Что-то типа upper(cc.value) like tbl1.ip||'%', только перевернуть. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2021, 14:38 |
|
Можно ли как-то получить профит от индекса при использовании выражений?
|
|||
---|---|---|---|
#18+
Alibek B. Что-то типа upper(cc.value) like tbl1.ip||'%', только перевернуть. почему перевернуть? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2021, 16:19 |
|
Можно ли как-то получить профит от индекса при использовании выражений?
|
|||
---|---|---|---|
#18+
Действительно, это я сам уже запутался. Да, так работает. Единственное, проверку тогда лучше записать иначе: (upper(cc.value) = tbl1.ip or upper(cc.value) like tbl1.ip||' %') (чтобы не было ложных срабатываний для 192.168.1.123 например) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2021, 16:55 |
|
Можно ли как-то получить профит от индекса при использовании выражений?
|
|||
---|---|---|---|
#18+
Alibek B. (чтобы не было ложных срабатываний для 192.168.1.123 например) тогда надо тупо вырезать ир (upper(cc.value) like tbl1.ip||' %') AND ...) ps "поэтому для удобства пользователей" вылезает боком убрать удобства в отдельное поле ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2021, 09:53 |
|
|
start [/forum/topic.php?fid=52&fpage=25&tid=1880432]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 273ms |
total: | 392ms |
0 / 0 |