intermediate
Extensions
Подключайте extensions вроде pg_trgm, PostGIS, uuid-ossp или pgvector с учетом deployment и portability costs.
Расширения добавляют возможности через `CREATE EXTENSION` без форка PostgreSQL. Популярные:
| Расширение | Назначение | |------------|------------| | pg_trgm | Trigram similarity, fuzzy LIKE | | PostGIS | Геопространственные типы и запросы | | uuid-ossp / pgcrypto | UUID и crypto helpers | | pgvector | Векторный similarity для RAG | | citext | Регистронезависимый text |
CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE INDEX idx_users_name_trgm ON users USING GIN (name gin_trgm_ops);
SELECT name FROM users
WHERE name % 'jon'
ORDER BY similarity(name, 'jon') DESC
LIMIT 10;
Расширения влияют на переносимость, backup/restore, allowlist в managed cloud и путь апгрейда. Фиксируйте версии в миграциях и документируйте operational ownership.
На интервью: назовите extension под реальную фичу (geo, fuzzy search, vectors) и ограничения деплоя на RDS/Cloud SQL.
Типовые ошибки: включение в prod без проверки на staging; ожидание PostGIS на любом хосте; дублирование типов extension в приложении; нет плана отката при блокировке апгрейда.
Компромисс — быстрая доставка фич внутри Postgres против зависимости от DBA tooling, поддержки в cloud и сложности миграций.
Чеклист:
- Свяжите extension с конкретным запросом.
- Проверьте доступность на целевом хостинге.
- Зафиксируйте версию в миграциях.
- Опишите последствия для restore и upgrade.