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.