Что такое PostgreSQL
Коротко
PostgreSQL (или просто Postgres) — open-source реляционная БД. Самая популярная в мире для production-систем.
Используется в:
- Стартапы и средний бизнес — стандарт.
- Большинство SaaS-продуктов.
- Госуслуги, банки, e-commerce.
Конкуренты: MySQL, SQL Server, Oracle.
Главные особенности
1. ACID-compliance
Полная поддержка транзакций. Можно полагаться, что данные не потеряются.
2. SQL-стандарт
PostgreSQL — самый ANSI SQL совместимый. Многие фичи появились здесь раньше других.
3. Расширения
- PostGIS — geo-данные.
- pg_cron — schedule задач.
- timescaledb — time-series.
- citus — распределённое хранение.
4. JSON / JSONB
Хранение неструктурированных данных в JSON-формате с поддержкой индексов.
5. Оконные функции, CTE, рекурсия
Полная поддержка с давних версий.
6. Open-source
Бесплатен, можно поднять локально или в cloud.
Версии
- Postgres 16 (последняя стабильная, 2026).
- Postgres 15 — ещё много в проде.
- Postgres 12-14 — legacy.
Каждая версия добавляет performance + features. Обновление — обычно безболезненное.
Типы данных
- Числа: int2/4/8, numeric, real, double precision.
- Строки: char, varchar, text.
- Boolean.
- Даты: date, time, timestamp, timestamptz, interval.
- JSON / JSONB.
- Массивы:
int[],text[]. - Range: int4range, tsrange.
- UUID.
- Geometry (через PostGIS).
Больше таких примеров с разборами — в Telegram-тренажёре. Короткие сессии, прогресс по темам, объяснения после каждого ответа.
Зачем аналитику
PostgreSQL — главный OLTP-источник данных в большинстве компаний.
Что аналитик делает в Postgres
- Read-only queries для отчётов и дашбордов.
- Извлечение данных для дальнейшего анализа в Python.
- Создание VIEW для команды.
- Простые ETL через INSERT INTO ... SELECT.
Что НЕ делает
- Транзакции в продакшне (это работа backend).
- DDL (CREATE / DROP TABLE) без согласования.
- UPDATE / DELETE на production-таблицах.
Postgres vs другие СУБД
Postgres vs MySQL
- Postgres более ANSI-стандарт, больше фич.
- MySQL проще, легче администрировать.
- Postgres лучше для аналитики (CTE, оконные).
- MySQL быстрее для простых read.
Postgres vs ClickHouse
- Postgres — OLTP (транзакции).
- ClickHouse — OLAP (аналитика).
- Postgres до 100M строк, ClickHouse от 100M.
Postgres vs MongoDB
- Postgres — реляционная.
- Mongo — документная.
- Postgres + JSONB закрывает 80% случаев Mongo.
Установка для аналитика
Локально
# Mac
brew install postgresql
# Ubuntu
sudo apt install postgresql
# Windows — скачать с postgresql.orgЗапуск: pg_ctl start. Подключение: psql.
GUI клиенты
- DBeaver — лучший free.
- DataGrip — JetBrains, платный.
- TablePlus — Mac/Win/Linux.
- pgAdmin — официальный, тяжеловат.
Docker (быстрее всего)
docker run -d \
-e POSTGRES_PASSWORD=mypass \
-p 5432:5432 \
postgres:16Базовые команды для аналитика
Подключение
psql -h localhost -U postgres -d mydbИнформация о таблицах
\dt -- список таблиц
\d users -- структура таблицы users
\df -- функции
\dn -- схемыРазмер таблицы
SELECT pg_size_pretty(pg_total_relation_size('orders'));Количество строк
-- Точно (медленно на больших)
SELECT COUNT(*) FROM events;
-- Приближённо (быстро)
SELECT reltuples::bigint FROM pg_class WHERE relname = 'events';Типичные расширения
pg_stat_statements
Топ медленных запросов:
SELECT query, calls, total_exec_time FROM pg_stat_statements
ORDER BY total_exec_time DESC LIMIT 10;postgres_fdw
Foreign data wrapper — JOIN из разных Postgres-инстансов.
pgcrypto
Хэширование, шифрование.
Если готовишься к собесу — бот @kariernik_bot закрывает 80% технических вопросов. SQL, Python, A/B, продуктовые метрики — всё в одном месте.
Типичные ошибки начинающих
1. Использовать VARCHAR(N) для всего
В Postgres TEXT и VARCHAR(N) имеют одинаковую performance. Используйте TEXT.
2. Не использовать JSONB
Если данные неструктурированные — JSONB лучше TEXT для JSON.
3. Игнорировать timezone
TIMESTAMPTZ лучше TIMESTAMP для production. Сохраняет TZ.
4. ANSI vs Postgres-specific синтаксис
Postgres-specific: LIMIT, INTERVAL '1 day', ::cast. Они удобнее, но не работают в SQL Server / Oracle.
Производительность
Оптимизация запросов
- EXPLAIN ANALYZE.
- Индексы.
- Vacuum / analyze.
- Partitioning.
Cloud-варианты
- AWS RDS Postgres.
- Google Cloud SQL Postgres.
- Azure Database for PostgreSQL.
- Yandex Managed PostgreSQL.
- Supabase, Neon — современные dev-ориентированные.
Self-hosted — для больших / специфичных. Cloud — для большинства.
Читайте также
FAQ
Postgres бесплатный?
Да, полностью open-source. Платными бывают только managed-сервисы (RDS, GCP).
Надо ли учить администрирование?
Аналитику — не обязательно. SELECT-запросы и базовые CREATE / INSERT хватает.
Postgres подходит для аналитики?
До 100M строк — нормально. Больше — нужен ClickHouse / Snowflake.
Версия Postgres важна?
В целом нет. Но Postgres 13+ имеет улучшенный CTE optimizer (inline вместо forced materialization).