Базы Данных (Data Base) | SQL & NoSQL. PostgreSQL, MySQL и Big Data. Уроки для Backend и Data Engineer. Архитектура БД, Оптимизация и Design.
Базы Данных (Data Base) | SQL & NoSQL. PostgreSQL, MySQL и Big Data. Уроки для Backend и Data Engineer. Архитектура БД, Оптимизация и Design.
2 496 подписчиков · @database_info
К каналу →
🗓 13 июля в 18:00 МСК приглашаем вас на открытый урок «LoRA и RAG: как адаптировать LLM под свои данные и задачи». На занятии разберём: 👇 • как RAG помогает модели работать с фа…
Читать далее →
443
Индексы в PostgreSQL: Часть 1 — B-Tree Если ты создавал индекс в PostgreSQL по умолчанию, значит, это B-Tree. Но как он работает и когда он реально полезен? Что это такое? B-Tre…
Читать далее →
502

🔒 Почему одна "невинная" транзакция может положить продакшн Классическая ситуация: разработчик открывает транзакцию, де

🔒 Почему одна "невинная" транзакция может положить продакшн

Классическая ситуация: разработчик открывает транзакцию, делает выборку, потом какой-то API-запрос наружу (например, к платёжному шлюзу), и только потом коммитит. Транзакция висит открытой 3-5 секунд вместо миллисекунд. Локально всё ок, тесты зелёные. В проде — деградация через пару часов.

Что происходит под капотом в PostgreSQL (MVCC):

1. VACUUM не может убрать мёртвые строки. Пока жива хоть одна старая транзакция, движок обязан хранить все версии строк, которые теоретически могут быть видны в её snapshot. UPDATE/DELETE копится в виде dead tuples, автовакуум работает, но эффективность падает.

2. Table bloat. Таблица физически растёт, индексы разбухают, страницы всё реже помещаются в shared_buffers — растёт I/O, падает cache hit ratio.

3. xmin horizon не двигается. Это глобальная граница, до которой можно чистить старые версии. Одна зависшая транзакция держит её на месте для ВСЕЙ базы, а не только для своей таблицы.

4. Реплики страдают отдельно. На hot standby с hot_standby_feedback = on долгая транзакция на реплике заставляет primary тоже не вакуумить нужные строки — эффект расползается по кластеру.

Как ловить:

SELECT pid, now() - xact_start AS duration, query
FROM pg_stat_activity
WHERE state != 'idle'
ORDER BY duration DESC
LIMIT 10;

Плюс idle in transaction — отдельная категория боли: транзакция открыта, а коннекшен вообще ничего не делает (забыли закоммитить/роллбэкнуть). Лечится через idle_in_transaction_session_timeout.

Правило для сеньора: транзакция должна жить ровно столько, сколько нужно для консистентности данных — не больше. Любой сетевой вызов, любая тяжёлая бизнес-логика — только вне транзакции или в отдельном коротком шаге.

#postgresql #databases #mvcc

#db

👉 @database_info
Чем отличаются друг от друга блокировки баз данных? В управлении базами данных блокировки — это механизмы, которые предотвращают одновременный доступ к данным, обеспечивая их цело…
Читать далее →
385
Другие главы канала «Базы Данных (Data Base) | SQL & NoSQL. PostgreSQL, MySQL и Big Data. Уроки для Backend и Data Engineer. Архитектура БД, Оптимизация и Design.»
Выберите главу, чтобы продолжить чтение
Все посты →
Глава от 09.07.2026
Чем отличаются друг от друга блокировки баз данных? В управлении базами данных …
👁 385 просмотров
Глава от 07.07.2026
Индексы в PostgreSQL: Часть 1 — B-Tree Если ты создавал индекс в PostgreSQL по …
👁 502 просмотров
Глава от 06.07.2026
🗓 13 июля в 18:00 МСК приглашаем вас на открытый урок «LoRA и RAG: как адаптиро…
👁 443 просмотров
Глава от 06.07.2026
Хотите узнать секрет оптимизации SQL-запросов? Очень важно понимать порядок вы…
👁 542 просмотров
Глава от 03.07.2026
🧱 Антипаттерн: использование UUID как Primary Key без оглядки На первый взгляд,…
👁 610 просмотров
Глава от 01.07.2026
3 способа «убить» индекс в SQL Запрос тормозит. Индекс есть. Что пошло не так? …
👁 692 просмотров
Глава от 30.06.2026
LLM в поддержке: от шаблонов к точной работе с документами компании ✅ На откры…
👁 600 просмотров
Глава от 30.06.2026
🔴 Антипаттерн: игнорирование поведения NULL в SQL Когда ты пишешь WHERE column …
👁 625 просмотров
Глава от 28.06.2026
Антипаттерн: использование SELECT * в продакшене Кажется безобидным, правда? Ос…
👁 679 просмотров

Популярные посты канала «Базы Данных (Data Base) | SQL & NoSQL. PostgreSQL, MySQL и Big Data. Уроки для Backend и Data Engineer. Архитектура БД, Оптимизация и Design.»

🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 6 033 просмотров
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 5 976 просмотров
Многопользовательская игра, похожая на DOOM, написанная на чистом SQL DOOMQL - это экспериментальный проект, который позволяет играть в DOO…
👁 5 973 просмотров
Типы JOIN в SQL и когда их применять - INNER JOIN - пересечение множеств (только совпавшие строки). - LEFT JOIN - все слева + совпавшие спр…
👁 5 969 просмотров
🔥 Неправильные типы данных в БД — тихий убийца производительности Одна из самых частых ошибок — выбирать тип “на всякий случай побольше”. …
👁 5 946 просмотров
Антипаттерн: N+1 запросов — как заметить и починить Вы берёте список сущностей, а потом в цикле для каждой тянете связанные данные. В итоге…
👁 5 898 просмотров
🚨 Антипаттерн: Почему OFFSET убивает твою базу (и как делать пагинацию правильно) Привет! Если вы когда-нибудь реализовывали каталог товаро…
👁 5 857 просмотров
7 SQL-запросов, которые решают 90% всех задач на работе Каждый день одно и то же. Открываешь клиент базы данных, чтобы что-то проверить, по…
👁 5 817 просмотров
⚔️ SQL vs NoSQL: Что выбрать для вашего проекта? Выбор базы данных - одно из ключевых архитектурных решений. Нет универсальной "серебряной …
👁 5 812 просмотров
Продвинутый курс SQL за час - проще некуда Сегодня я продолжу рассказывать про SQL и мы погрузимся уже в чуть более интересные запросы, свя…
👁 5 783 просмотров
🖥 Основы SQL за час - бесплатно и проще некуда Содержание: 00:00 - подготавливаем базу 04:36 - выбираем данные SELECT 08:30 - указываем тек…
👁 5 744 просмотров
🔥 Индексы в PostgreSQL: когда они реально помогают, а когда мешают Многие ставят индексы “на всё подряд”, а потом удивляются, почему БД тор…
👁 5 713 просмотров
Визуализация SQL-запроса #db 👉 @database_info
👁 5 688 просмотров
🚨 Антипаттерн: хранить пароли в базе "как есть" Да, звучит как очевидный совет, но на практике до сих пор встречаются проекты, где пароль с…
👁 5 661 просмотров
Базы данных классифицируются в первую очередь по методу организации данных, способу их поиска и хранения, производительности при доступе к д…
👁 5 634 просмотров
⚠️ Можно знать алгоритмы машинного обучения и всё равно получать плохие результаты. Большинство проблем моделей начинаются с некачественной …
👁 5 632 просмотров
Немного юмора) #db 👉 @database_info
👁 5 628 просмотров
Антипаттерны JOIN-ов в SQL и как их избежать JOIN - мощная штука, но может легко превратиться в генератор тормозов и дублей. Вот топ-4 лову…
👁 5 622 просмотров
5 нормальных форм баз данных, которые должен знать каждый разработчик #db 👉 @database_info
👁 5 596 просмотров
💡 Универсальная шпаргалка по SQL #db 👉 @database_info
👁 5 582 просмотров

Связанные темы в других каналах

Каналы из той же тематики, где часто появляются близкие сюжеты
Вся тема →
@canalmaxone
AntiCloudMod
AntiCloudMod — сообщество для тех, кто ценит свободу общения без облачной цензуры. Здесь обсуждают альтернативные мессенджеры, инструменты для приватности и децентрализов…
👥 454 701 · +47 542/7д
@WylsacomRed
Wylsacom Red
Официальный канал Wylsacom в Max. Тут всё про технологии и жизнь в ногу со временем! Номер заявления для регистрации в РКН: № 6979154178 Розыгрыши: kichaev@wylsacom.med…
👥 158 843 · +323/7д
@BelgorodDRONE
Информация БПЛА Белгород, Белгородский район
Информация БПЛА Белгород, Белгородский район — специализированный канал в мессенджере Макс, посвященный новостям и информации о беспилотных летательных аппаратах в регион…
👥 146 512 · +3 851/7д
@TikTokModCloud
TikTokModCloud
Официальные обновления стабильного мода TikTok Чат: https://clck.ru/3S6mVh По рекламе: https://iimax.ru/dim4ugan
👥 93 843 · +3 591/7д
@na_kruchok
ГЛЕНТ | МЕМЫ
Глент мемы Это фан-сообщество, созданное преданными поклонниками для поддержки творчества Глента. Данный канал НЕ является официальным и ведется фанатом Биржа: telega.…
👥 72 426 · +4 218/7д
@hitech
Hi-Tech
Оперативные новости, обзоры гаджетов, собственное видео, трансляции мировых анонсов и мероприятий По вопросам сотрудничества и размещения рекламы i.ostapenko@corp.mail.r…
👥 52 961 · -36/7д
🏷 Темы и теги
#postgresql #databases #mvcc #db #архитектура бд #data engineer #оптимизация запросов #sql #nosql #Технологии
📋 О канале Базы Данных (Data Base) | SQL & NoSQL. PostgreSQL, MySQL и Big Data. Уроки для Backend и Data Engineer. Архитектура БД, Оптимизация и Design.
Всё о проектировании и работе с данными. Глубокий разбор SQL (Join, Index, Query Tuning). Реляционные СУБД: Postgres, Oracle, MS SQL. NoSQL технологии: MongoDB, Redis, Cassandra, ClickHouse. Архитектура высоконагруженных систем: репликация, шардинг, CAP-теорема, ACID транзакции. Оптимизация медленных запросов. Моделирование данных и нормализация. ETL процессы и миграция.
🔍 Архив всех постов Макс
Поиск по 11,122,075 постам из 201,399 каналов
Подключить за 490 ₽/мес →
Удалить пост или канал с МАКСОТЕКИ
Заявка подтверждается через бота Макс: нужно быть администратором канала и добавить бота МАКСОТЕКИ в администраторы. После проверки канал или конкретный пост скрывается с сайта.
📊 Аналитика канала «Базы Данных (Data Base) | SQL & NoSQL. PostgreSQL, MySQL и Big Data. Уроки для Backend и Data Engineer. Архитектура БД, Оптимизация и Design.» ➡️ Перейти в канал Макс
Заявка в МАКСОТЕКА
Добавьте свой канал в каталог
Зарегистрируйтесь в личном кабинете и добавьте канал за пару кликов.
Перейти в личный кабинет →

Бесплатная регистрация, быстрая модерация.