Эта статья еще в разработке. Дописываем примеры
Содержит индексы на таблички. Используется для ускорения тяжёлых запросов. На текущий момент индексы полностью соответствуют создаваемым индексам в PostgreSQL. Рекомендуется изучить её документацию.
Индексы описываются в таблице public.indexes. Колонки этой таблицы:
| Колонка | Описание |
|---|---|
name |
Название индекса. Не может быть пустым, содержать пробелы, строки / и __. |
entity_id |
Сущность, к которой относится индекс. |
expressions |
Массив выражений, по которым строится индекс. После выражения можно указывать параметры сортировки (как в ORDER BY и /оператор индексирования/. |
included_expressions |
Массив выражений, хранимых внутри индекса. Соответствует INCLUDE в CREATE INDEX. |
is_unique |
Должен ли индекс быть уникальным. Это позволяет вводить более гибкие ограничения на уникальность, чем unique_constraints, однако не рекомендуется использовать для этого индекс, если уникальность не надо проверять по выражениям. |
predicate |
Логическое выражение для колонок, по которым строится индекс. Соответствует WHERE в CREATE INDEX. |
type |
Тип индекса. Поддерживаются btree, gist и gin. |
На текущий момент поддерживается только оператор индексирования trgm, который поддерживает строки и типы индексов gin и gist. Он создаёт индекс триграм, используя pg_trgm.
SELECT
rating,
name,
last_communication,
notes
FROM
base.contacts
WHERE
is_client
ORDER BY
rating DESC NULLS LAST
| entity_id | expressions | is_unique | name | predicate | type |
|---|---|---|---|---|---|
base.contacts |
rating DESC NULLS LAST |
false |
clients_idx |
is_client |
btree |