forked from upagge/digital-garden
45 lines
2.4 KiB
Markdown
45 lines
2.4 KiB
Markdown
---
|
||
aliases:
|
||
tags:
|
||
- maturity/🌱
|
||
- best-practices
|
||
date: 2024-11-05
|
||
---
|
||
Часто в приложениях есть таблицы, которые содержат колонку статуса (`state`). Обычно статус разделяет записи на "обработанные" и "необработанные". Индекс нам часто нужен именно по необработанным данным. Создавая [[Частичный индекс|частичный индекс]] только по необработанным данным, мы можем ускорить выполнение запроса и уменьшить размер индекса.
|
||
|
||
Возьмем типичную табличку, в которой есть какие-то статусы мы хотим находить данные по этому статусу.
|
||
|
||

|
||

|
||
|
||
Часто появляется желание сделать индекс по полю статуса:
|
||
|
||

|
||
|
||
Но по факту мы индексируем поле, которое имеет небольшую [селективность](../../dev/database/Селективность%20колонки.md). Такой индекс не эффективный.
|
||
|
||
Хороший вариант в данном случае:
|
||

|
||
|
||
Почти идеальный:
|
||

|
||

|
||
|
||
Идеальный. Совмещаем и [[postgresql/Составной индекс в PostgreSQL|составной индекс]] и частичный.
|
||
|
||
![[../../meta/files/images/Pasted image 20241021225124.png]]
|
||
|
||
***
|
||
## Мета информация
|
||
**Область**:: [[../../meta/zero/00 Базы Данных|00 Базы Данных]]
|
||
**Родитель**::
|
||
**Источник**::
|
||
**Создана**:: [[2024-11-05]]
|
||
**Автор**::
|
||
### Дополнительные материалы
|
||
-
|
||
|
||
### Дочерние заметки
|
||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||
|