digital-garden/dev/database/postgresql/Создание индекса в PostgreSQL.md
Struchkov Mark 8b4fb13112
All checks were successful
continuous-integration/drone/push Build is passing
Обновление
2024-11-05 01:01:35 +03:00

35 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
aliases:
tags:
- maturity/🌱
date: 2024-10-21
---
[PostgreSQL: Documentation: 16: CREATE INDEX](https://www.postgresql.org/docs/current/sql-createindex.html): рекомендуется ознакомиться с официальной документацией для более глубокого понимания команды `CREATE INDEX` и всех доступных опций.
**Что нужно для создания индекса?**
- **Соберите статистику нагрузки на БД**. **Работайте только с продуктовым окружением**: тестовые окружения не всегда отражают реальность.
- Используйте [[pg_stat_statements|pg_stat_statements]] для анализа запросов.
- Анализируйте [[Таблица статистик pg_stats|pg_stats]]: важно понимать, как планировщик БД строит план выполнения запроса.
- Инструмент pgBadge можно применять с осторожностью, так как он собирает данные из логов, в которые попадают не все запросы.
- **Примеры запросов с параметрами**: сохраняйте примеры для проверки оптимизаций.
- **Сбор дополнительной статистики**: при необходимости вручную собирайте более полные данные, так как по умолчанию PostgreSQL использует для анализа только 30k строк, что может давать неточную картину.
- **Учитывайте блокировку таблицы**: добавление индекса блокирует таблицу, поэтому это нужно учитывать при планировании операций.
- Используйте [[Профилирование запросов в PostgreSQL|EXPLAIN]]: для анализа статистики распределения данных и проверки эффективности выполнения запросов.
**Полезные советы:**
- [[../Селективность колонки|Селективность колонки]]: чем выше селективность, тем эффективнее работает индекс.
- **Частичные индексы**: используйте [[../Частичный индекс|частичный индекс]], чтобы уменьшить размер индекса и повысить эффективность.
***
## Мета информация
**Область**:: [[../../../meta/zero/00 PostgreSQL|00 PostgreSQL]]
**Родитель**:: [[Индекс в PostgreSQL|Индекс в PostgreSQL]]
**Источник**::
**Создана**:: [[2024-10-21]]
**Автор**::
### Дополнительные материалы
-
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->