SQLLab

Блог об SQL

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

20 статей по теме Оптимизация

PostgreSQLОптимизацияИндексы

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

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

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

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

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

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

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

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

23 марта 2026 г.·5 мин чтения
ПодзапросыОптимизацияОсновы

Подзапросы в SQL: скалярные, строчные, табличные и коррелированные

Типы подзапросов в SQL: скалярный, строчный, табличный, коррелированный. Когда использовать подзапрос, CTE или JOIN. Примеры оптимизации.

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

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

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

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

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

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

19 марта 2026 г.·5 мин чтения
ОптимизацияАнтипаттерныСобеседование

SQL антипаттерны: 12 ошибок которые замедляют запросы

Разбираем типичные SQL антипаттерны: SELECT *, функции в WHERE, NOT IN с NULL, OFFSET, декартово произведение. Каждый антипаттерн — с правильной альтернативой.

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

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

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

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

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

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

16 марта 2026 г.·5 мин чтения
ПодзапросыОптимизацияСобеседование

EXISTS и NOT EXISTS в SQL: когда использовать вместо JOIN и IN

Разбираем EXISTS и NOT EXISTS: как работают, отличие от IN и LEFT JOIN IS NULL, оптимизация, примеры с коррелированными подзапросами.

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

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

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

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

SQL-оптимизация для Senior: вопросы на собеседовании

Вопросы и задачи по оптимизации SQL для Senior-разработчика: EXPLAIN, индексы, партиционирование, антипаттерны.

16 марта 2026 г.·4 мин чтения
ОсновыОбъединениеОптимизация

UNION и UNION ALL в SQL: объединение результатов запросов

Как работают UNION и UNION ALL в SQL: разница, примеры, когда использовать каждый, комбинация с ORDER BY и производительность.

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

Индексы в PostgreSQL: B-tree, Hash, GIN — что и когда использовать

Как работают индексы в PostgreSQL: типы (B-tree, Hash, GIN, BRIN), составные индексы, partial и expression индексы. Когда индекс не используется и как это проверить через EXPLAIN.

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

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

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

12 марта 2026 г.·5 мин чтения
ОсновыОптимизацияАналитика

Подзапросы vs JOIN vs CTE: когда что выбрать в SQL

Сравниваем подзапросы, JOIN и CTE в SQL: производительность, читаемость, типичные случаи применения. Разбираем на одной задаче тремя способами.

11 марта 2026 г.·5 мин чтения
HRОптимизацияСобеседование

SQL для BI-разработчика: задачи для найма

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

10 марта 2026 г.·4 мин чтения
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 мин чтения