Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
07.10.2024, 13:53
|
|||
---|---|---|---|
Построение индекса для выборки по НЕ равно |
|||
#18+
Вообще проект для которого возник вопрос живёт в PostgreSQL, но, в моей картине мира, ответы будут общими для всех популярных SQL баз. Получил в наследство легаси проект с "шиной данных для бедных" построенной на SQL базе. В базе есть таблица примерно такого вида: Код: SQL 1. 2. 3. 4. 5.
Для этого отправляют запросы вида: Код: SQL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Код 1.
Вопрос: какой индекс правильнее всего использовать для оптимизации таких запросов. ... |
|||
:
Изменено: 07.10.2024, 13:55 - ajkon
Нравится:
Не нравится:
|
|||
|
10.10.2024, 17:38
|
|||
---|---|---|---|
Построение индекса для выборки по НЕ равно |
|||
#18+
Индексы на не равно: обычно это решается через переписывания не равно в больше/меньше, например: prod_version_id != 5006 - prod_version_id < 5006 or prod_version_id > 5006. Индекс будет на config_id, prod_version_id. Но нужно смотреть план выполнения, т.к. в PostgreSQL не должно быть concatenation/or-expansion трансформаций, что есть в Oracle. На больше-меньше заменить попробую и в план поштырю. Индекс на config_id, prod_version_id и так уже сделал, но нужно было подтверждение от опытных базоводов, что это хорошее и по сути единственное решение ) Возможно ли использовать prod_version_id > 5006, или по каким-то причинам поле не возрастает? P.S. Да, решение сначала фильтровать по проиндексированному LAST_UPDATED было бы идеальным, но в силу некоторых извратов в бизнес-логике (которые длино описывать и не хочется сюда тащиеть) к этому проекту не подходит ( ... |
|||
:
Изменено: 10.10.2024, 17:48 - ajkon
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=69&mobile=1&tid=2187016]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
others: | 242ms |
total: | 384ms |
0 / 0 |