SQLLab

Блог об SQL

Разборы, уроки и советы — от основ до продвинутых техник

61 статей по теме PostgreSQL

PostgreSQLПроектированиеОсновы

Первичные ключи в PostgreSQL: SERIAL, BIGSERIAL, UUID или IDENTITY?

Первичные ключи в PostgreSQL: SERIAL vs BIGSERIAL vs GENERATED ALWAYS AS IDENTITY vs UUID. Производительность вставки, проблемы переполнения, когда UUID.

30 марта 2026 г.·5 мин чтения
PostgreSQLPL/pgSQLПродвинутый

Динамический SQL в PostgreSQL: EXECUTE и строим запросы программно

Динамический SQL в PostgreSQL: EXECUTE в PL/pgSQL, FORMAT для безопасного построения запросов, защита от SQL-инъекций. Примеры с необязательными фильтрами.

30 марта 2026 г.·4 мин чтения
PostgreSQLПроектированиеОсновы

Типы данных в PostgreSQL: как выбрать правильно

Типы данных в PostgreSQL: INTEGER vs BIGINT vs NUMERIC, VARCHAR vs TEXT, TIMESTAMP vs TIMESTAMPTZ, UUID, BOOLEAN, ENUM. Влияние выбора на производительность.

29 марта 2026 г.·5 мин чтения
PostgreSQLАналитикаПродвинутый

PIVOT в SQL: превращаем строки в столбцы

PIVOT в SQL: условная агрегация через CASE WHEN, расширение tablefunc и crosstab в PostgreSQL, динамический PIVOT. Примеры отчётов.

26 марта 2026 г.·4 мин чтения
PostgreSQLТранзакцииПродвинутый

Продвинутые транзакции в PostgreSQL: SAVEPOINT и обработка ошибок

Продвинутые транзакции PostgreSQL: SAVEPOINT, ROLLBACK TO SAVEPOINT, вложенные транзакции, обработка deadlock на стороне приложения.

25 марта 2026 г.·4 мин чтения
Оконные функцииPostgreSQLПродвинутый

Оконные функции SQL: продвинутые техники и фреймы

Продвинутые оконные функции SQL: ROWS vs RANGE, фреймы PRECEDING/FOLLOWING, скользящие окна, EXCLUDE, FIRST_VALUE/LAST_VALUE. Примеры на PostgreSQL.

25 марта 2026 г.·4 мин чтения
PostgreSQLАналитикаПродвинутый уровень

Time series анализ в PostgreSQL: временные ряды и тренды

Анализ временных рядов в PostgreSQL: скользящее среднее, заполнение пропусков, generate_series, lag/lead, сезонность, аномалии. Практические примеры.

24 марта 2026 г.·6 мин чтения
PostgreSQLПроизводительностьПродвинутый уровень

Партиционирование таблиц в PostgreSQL: RANGE, LIST, HASH

Партиционирование PostgreSQL: RANGE по дате, LIST по категории, HASH по ID. Partition pruning, индексы, ATTACH/DETACH, автоматическое создание партиций.

24 марта 2026 г.·5 мин чтения
PostgreSQLОптимизацияИндексы

Оптимизация JOIN в PostgreSQL: как ускорить объединения таблиц

Оптимизация JOIN в PostgreSQL: Hash Join vs Nested Loop vs Merge Join, когда JOIN медленный, индексы для JOIN, EXPLAIN ANALYZE, материализация CTE.

24 марта 2026 г.·6 мин чтения
PostgreSQLSQLПродвинутый уровень

LATERAL JOIN в PostgreSQL: продвинутые запросы с зависимыми подзапросами

LATERAL JOIN в PostgreSQL: синтаксис, отличие от обычного JOIN, TOP-N на группу, unnest, generate_series. Когда и зачем использовать LATERAL.

24 марта 2026 г.·5 мин чтения
PostgreSQLОптимизацияПродвинутый

Секционирование таблиц в PostgreSQL: PARTITION BY RANGE, LIST, HASH

Секционирование в PostgreSQL: PARTITION BY RANGE, LIST, HASH. Когда нужно секционирование, как создать и управлять секциями, прирост производительности.

24 марта 2026 г.·5 мин чтения
PostgreSQLИнфраструктураАдминистрирование

Резервное копирование PostgreSQL: pg_dump и восстановление

Бэкап PostgreSQL через pg_dump, pg_dumpall, pg_basebackup. Форматы, автоматизация, восстановление из бэкапа, Point-in-Time Recovery. Практический гайд.

24 марта 2026 г.·5 мин чтения
PostgreSQLАрхитектураПродвинутый уровень

Multi-tenancy в PostgreSQL: паттерны изоляции данных

Три подхода к мультитенантности в PostgreSQL: отдельные БД, схемы на тенанта, общие таблицы с tenant_id. Сравнение, RLS, производительность.

24 марта 2026 г.·5 мин чтения
PostgreSQLРепликацияИнфраструктура

Репликация PostgreSQL: streaming replication и read replicas

Настройка streaming replication в PostgreSQL: primary/standby, pg_basebackup, read replicas, синхронная репликация, мониторинг лага. Практический гайд.

23 марта 2026 г.·5 мин чтения
PostgreSQLPgBouncerПроизводительность

PgBouncer: пул соединений для PostgreSQL

Настройка PgBouncer для PostgreSQL: режимы session/transaction/statement, pool_size, max_client_conn, мониторинг. Зачем нужен пул и как настроить.

23 марта 2026 г.·4 мин чтения
PostgreSQLОптимизацияПродвинутый уровень

Generated columns в PostgreSQL: вычисляемые столбцы

Generated (вычисляемые) столбцы в PostgreSQL: STORED vs виртуальные, синтаксис, ограничения, индексы. Когда использовать вместо триггеров и функциональных индексов.

23 марта 2026 г.·5 мин чтения
PostgreSQLТранзакцииПродвинутый

Блокировки в PostgreSQL: FOR UPDATE, deadlock и как с ними работать

Блокировки в PostgreSQL: строчные и табличные блокировки, SELECT FOR UPDATE, FOR SHARE, обнаружение и предотвращение deadlock. Практические примеры.

23 марта 2026 г.·5 мин чтения
PostgreSQLОсновыАрхитектура

Сравнение баз данных: PostgreSQL, MySQL, SQLite, MongoDB

Сравнение популярных баз данных: PostgreSQL vs MySQL, SQLite, MongoDB. Что выбрать для стартапа, аналитики, мобильного приложения или учёбы.

22 марта 2026 г.·3 мин чтения
Проектирование БДPostgreSQLData Engineering

Временные паттерны в SQL: хранение истории изменений данных

Паттерны для хранения исторических данных в SQL: bi-temporal модели, valid time, transaction time, SCD Type 1/2/4, temporal таблицы в PostgreSQL.

22 марта 2026 г.·5 мин чтения
CTEDMLPostgreSQL

CTE с DML в SQL: INSERT, UPDATE, DELETE внутри WITH

Как использовать CTE (WITH) с INSERT, UPDATE и DELETE в PostgreSQL: атомарные операции, перемещение строк, upsert с логированием, writable CTE паттерны.

22 марта 2026 г.·5 мин чтения
ОсновыДля начинающихPostgreSQL

Реляционные базы данных: как устроены таблицы и связи

Реляционные базы данных: таблицы, первичные и внешние ключи, нормализация, отношения один-ко-многим и многие-ко-многим. Основы для начинающих.

22 марта 2026 г.·3 мин чтения
PostgreSQLПроизводительностьАдминистрирование

Настройка производительности PostgreSQL: ключевые параметры

Оптимизация postgresql.conf: shared_buffers, work_mem, checkpoint, autovacuum, max_connections. Диагностика узких мест, pg_stat_activity, pg_stat_bgwriter.

22 марта 2026 г.·5 мин чтения
PostgreSQLДля начинающихОсновы

PostgreSQL для начинающих: первые шаги и основные команды

PostgreSQL для начинающих: установка, подключение, первые запросы, основные типы данных. Практическое введение в самую популярную СУБД с открытым кодом.

22 марта 2026 г.·3 мин чтения
PostgreSQLОптимизацияПродвинутый

Materialized View в PostgreSQL: кэшируем тяжёлые запросы

Materialized View в PostgreSQL: создание, REFRESH MATERIALIZED VIEW, конкурентное обновление, отличие от обычного VIEW. Когда использовать и как избежать проблем.

22 марта 2026 г.·5 мин чтения
PostgreSQLPostGISГеоданные

PostGIS в PostgreSQL: работа с геоданными в SQL

Введение в PostGIS: геометрические типы, ST_Distance, ST_Within, ST_Intersects, поиск ближайших объектов, GiST-индексы для геоданных. Практические примеры.

22 марта 2026 г.·4 мин чтения
Data EngineeringПродвинутый уровеньPostgreSQL

SQL для дата-инженера: паттерны и техники 2026

SQL-паттерны для дата-инженеров: партиционирование запросов, оконные функции для ETL, обработка поздних данных, идемпотентные пайплайны, Data Vault.

21 марта 2026 г.·5 мин чтения
PostgreSQLDDLПроектирование БД

Последовательности (SEQUENCE) в PostgreSQL: SERIAL, BIGSERIAL и nextval

Как работают последовательности в PostgreSQL: SERIAL vs BIGSERIAL vs GENERATED ALWAYS, nextval, setval, сброс, ямы в ID, применение в мультитаблицах.

21 марта 2026 г.·4 мин чтения
PostgreSQLJSONПродвинутый

JSONB в PostgreSQL: хранение и запросы к полуструктурированным данным

JSONB в PostgreSQL: операторы ->, ->>, @>, GIN-индексы, jsonb_array_elements, обновление полей. Когда использовать JSONB вместо отдельных таблиц.

21 марта 2026 г.·5 мин чтения
PostgreSQLJSONBТипы данных

Функции для работы с JSONB в PostgreSQL: полный справочник

Операторы и функции JSONB в PostgreSQL: извлечение значений, обновление, поиск, индексы GIN, jsonb_set, jsonb_each, jsonb_path_query. Примеры.

21 марта 2026 г.·5 мин чтения
АгрегацияАналитикаPostgreSQL

ROLLUP, CUBE и GROUPING SETS в SQL: многоуровневые итоги

Как строить многоуровневые отчёты в SQL с ROLLUP, CUBE и GROUPING SETS: subtotals, grand total, кросс-таблицы без CASE WHEN. Примеры для аналитики.

20 марта 2026 г.·5 мин чтения
PostgreSQLРасширенияПродвинутый уровень

Популярные расширения PostgreSQL: pg_trgm, uuid-ossp, hstore и другие

Обзор ключевых расширений PostgreSQL: pg_trgm для нечёткого поиска, uuid-ossp, hstore, pg_stat_statements, pgcrypto, ltree, tablefunc. Когда и как использовать.

20 марта 2026 г.·5 мин чтения
PostgreSQLПоискИндексы

Полнотекстовый поиск в PostgreSQL: tsvector и tsquery

Полнотекстовый поиск в PostgreSQL: tsvector, tsquery, GIN-индексы, ранжирование результатов ts_rank. Примеры поиска на русском языке.

20 марта 2026 г.·4 мин чтения
Data EngineeringETLPostgreSQL

ETL-паттерны в SQL: загрузка, трансформация и обновление данных

Практические ETL-паттерны на SQL: upsert, SCD Type 2, инкрементальная загрузка, дедупликация, разбивка на батчи, аудитные поля. Для дата-инженеров.

20 марта 2026 г.·6 мин чтения
PostgreSQLPL/pgSQLПродвинутый уровень

Триггеры в PostgreSQL: создание, виды и практические примеры

Как создавать триггеры в PostgreSQL: BEFORE/AFTER, ROW/STATEMENT, триггерные функции на PL/pgSQL, аудит изменений, updated_at, мягкое удаление.

19 марта 2026 г.·5 мин чтения
Оконные функцииPostgreSQLПродвинутый уровень

Фреймы оконных функций SQL: ROWS, RANGE и GROUPS

Полный разбор фреймов в оконных функциях SQL: ROWS vs RANGE vs GROUPS, UNBOUNDED PRECEDING, CURRENT ROW, EXCLUDE, примеры скользящих агрегатов.

19 марта 2026 г.·5 мин чтения
JOINОсновыPostgreSQL

CROSS JOIN и SELF JOIN в SQL: когда нужно декартово произведение

Как работают CROSS JOIN и SELF JOIN в SQL: декартово произведение, генерация комбинаций, иерархии сотрудников, поиск пар, практические примеры.

19 марта 2026 г.·5 мин чтения
АналитикаСтатистикаPostgreSQL

Медиана и процентили в SQL: PERCENTILE_CONT, PERCENTILE_DISC, NTILE

Как считать медиану, квартили и процентили в PostgreSQL: PERCENTILE_CONT, PERCENTILE_DISC, NTILE, MODE, оконные варианты, практические кейсы для аналитики.

19 марта 2026 г.·5 мин чтения
PostgreSQLТипы данныхПродвинутый уровень

Массивы в PostgreSQL: хранение, запросы и функции

Как работать с массивами в PostgreSQL: создание, ANY/ALL, unnest, array_agg, GIN-индекс, поиск по элементам, сравнение с JSONB и нормализацией.

19 марта 2026 г.·5 мин чтения
PostgreSQLJOINПродвинутый

LATERAL JOIN в PostgreSQL: когда подзапрос становится циклом

LATERAL JOIN в PostgreSQL: синтаксис, применение для топ-N в каждой группе, вызов функций для каждой строки, сравнение с обычным подзапросом.

19 марта 2026 г.·4 мин чтения
ИндексыPostgreSQLОптимизация

Функциональные индексы в PostgreSQL: ускоряем запросы с функциями

Функциональные (expression) индексы в PostgreSQL: LOWER(), DATE_TRUNC(), JSON-поля, составные выражения. Когда помогают и как проверить через EXPLAIN.

19 марта 2026 г.·5 мин чтения
PostgreSQLПроектирование БДПроизводительность

UUID в PostgreSQL: когда использовать вместо SERIAL и как оптимизировать

UUID vs SERIAL в PostgreSQL: типы uuid, gen_random_uuid(), UUIDv7, производительность индексов, проблема фрагментации и когда UUID необходим.

18 марта 2026 г.·5 мин чтения
PostgreSQLОсновыАналитика

Функции для работы с датами в SQL (PostgreSQL)

Работа с датами в SQL: DATE_TRUNC, EXTRACT, INTERVAL, AGE, NOW, TO_CHAR. Примеры для аналитики — метрики по периодам, разница дат, форматирование.

18 марта 2026 г.·6 мин чтения
PostgreSQLБезопасностьАдминистрирование

Схемы и роли в PostgreSQL: организация доступа к данным

Как работают схемы (namespaces) в PostgreSQL, создание ролей и пользователей, GRANT/REVOKE, разграничение доступа по схемам, Row Level Security.

18 марта 2026 г.·5 мин чтения
PostgreSQLPL/pgSQLПродвинутый уровень

Функции и хранимые процедуры в PostgreSQL: PL/pgSQL с нуля

Создание функций и процедур в PostgreSQL на PL/pgSQL: параметры, возвращаемые типы, условия, циклы, обработка ошибок. Когда использовать функции в SQL.

18 марта 2026 г.·5 мин чтения
PostgreSQLТранзакцииПроизводительность

Deadlock в PostgreSQL: причины, диагностика и решение

Что такое deadlock в PostgreSQL, как он возникает, как обнаружить в логах и pg_locks, стратегии предотвращения и код с правильным порядком блокировок.

18 марта 2026 г.·5 мин чтения
Оконные функцииАналитикаPostgreSQL

Функция нарастающего итога (Running Total) в SQL: объясняем за 5 минут

Как считать нарастающий итог в SQL: SUM OVER с ROWS/RANGE, кумулятивная сумма по дням, скользящее среднее, нарастающие количества пользователей.

17 марта 2026 г.·4 мин чтения
Оконные функцииАналитикаPostgreSQL

LEAD и LAG в SQL: работа с соседними строками

Оконные функции LEAD и LAG в PostgreSQL: синтаксис, примеры — рост продаж, разница между событиями, цепочки платежей, поиск пропусков в данных.

17 марта 2026 г.·5 мин чтения
PostgreSQLОптимизацияEXPLAIN

EXPLAIN ANALYZE в PostgreSQL: как читать план запроса

Как использовать EXPLAIN и EXPLAIN ANALYZE в PostgreSQL: читаем план выполнения, находим Seq Scan, понимаем стоимость, ускоряем запросы.

17 марта 2026 г.·5 мин чтения
PostgreSQLОптимизацияПроектирование БД

VIEW в SQL: представления, материализованные вью и когда их использовать

Что такое VIEW в PostgreSQL, как создавать, обновлять, удалять. Отличие от материализованного VIEW, обновляемые вью, безопасность через RLS.

16 марта 2026 г.·5 мин чтения
DMLPostgreSQLОсновы

DML в SQL: INSERT, UPDATE, DELETE — полное руководство

Как вставлять, изменять и удалять данные в SQL: INSERT с подзапросами, UPDATE с JOIN, DELETE RETURNING, массовые операции и безопасные паттерны.

16 марта 2026 г.·5 мин чтения
DDLPostgreSQLПроектирование БД

DDL в SQL: CREATE TABLE, ALTER TABLE, DROP — управление структурой БД

CREATE TABLE с ограничениями, ALTER TABLE для изменения схемы, DROP TABLE и безопасные миграции. PostgreSQL DDL с практическими примерами.

16 марта 2026 г.·6 мин чтения
CTEPostgreSQLПродвинутый уровень

Рекурсивные CTE в PostgreSQL: иерархии, деревья и графы

Как использовать рекурсивные CTE (WITH RECURSIVE) в PostgreSQL: обход дерева организации, иерархические данные, граф маршрутов, поиск циклов.

16 марта 2026 г.·5 мин чтения
ОптимизацияPostgreSQLИндексы

Оптимизация SQL-запросов: практическое руководство

Как ускорить медленные SQL-запросы: индексы, переписывание запросов, EXPLAIN ANALYZE, типичные антипаттерны. Реальные примеры и советы для PostgreSQL.

16 марта 2026 г.·5 мин чтения
ФункцииPostgreSQLОбработка данных

Строковые функции в SQL: полный справочник с примерами

SUBSTRING, CONCAT, TRIM, UPPER, LOWER, REPLACE, LIKE, REGEXP, LENGTH и другие строковые функции в PostgreSQL. Примеры для очистки и трансформации данных.

15 марта 2026 г.·5 мин чтения
PostgreSQLMySQLОсновы

PostgreSQL vs MySQL: что выбрать и чем они отличаются

Подробное сравнение PostgreSQL и MySQL: производительность, функциональность, типы данных, JSON, транзакции. Что лучше для аналитики, веб-приложений и продакшена.

14 марта 2026 г.·4 мин чтения
PostgreSQLОптимизацияETL

Массовая загрузка данных в PostgreSQL: COPY и bulk INSERT

Как быстро загрузить миллионы строк в PostgreSQL: COPY FROM, multi-row INSERT, отключение индексов, настройки сессии для ETL.

12 марта 2026 г.·5 мин чтения
PostgreSQLАдминистрированиеПродвинутый

Миграции базы данных: как менять схему без даунтайма

Zero-downtime миграции PostgreSQL: как добавить колонку, создать индекс CONCURRENTLY, переименовать таблицу без блокировок. Практические паттерны.

10 марта 2026 г.·5 мин чтения
PostgreSQLИндексыОптимизация

Антипаттерны индексов в PostgreSQL: когда индексы вредят

Когда индексы вредят: дублирующиеся индексы, низкая селективность, избыточное индексирование, index bloat. Как найти бесполезные индексы.

6 марта 2026 г.·5 мин чтения
PostgreSQLОптимизацияАдминистрирование

Мониторинг медленных запросов в PostgreSQL: pg_stat_statements

Как находить медленные запросы в PostgreSQL: pg_stat_statements, slow query log, топ-10 самых тяжёлых запросов, мониторинг production.

4 марта 2026 г.·4 мин чтения
PostgreSQLОптимизацияАдминистрирование

VACUUM и ANALYZE в PostgreSQL: как поддерживать производительность

VACUUM и ANALYZE в PostgreSQL: зачем нужны, autovacuum, bloat таблиц, как мониторить и когда запускать вручную. Практические советы.

2 марта 2026 г.·4 мин чтения
HRPostgreSQLСобеседование

PostgreSQL на собеседовании: специфика и задачи

Вопросы и задачи по PostgreSQL для технического интервью: специфичные функции, EXPLAIN, типы данных, JSON.

25 февраля 2026 г.·4 мин чтения