TGViewer
SA: Между бизнесом и реальностью SA: Между бизнесом и реальностью @safromperm · 168 subscribers
Post #77 231
Блокировки в БД

Это механизм, который гарантирует, что два процесса не испортят одни и те же данные одновременно.

Простая аналогия:
Представьте общественный туалет:
Когда кто-то внутри — дверь закрыта на замок (exclusive lock)
Остальные ждут в очереди
Никто не может зайти, пока первый не выйдет
Зачем нужны?
Без блокировок:
→ Два человека одновременно меняют баланс одного счёта
→ Первый: баланс = 100
→ Второй: баланс = 200
→ Результат: кто последний — тот и прав
→ Деньги потерялись 💸
С блокировками:
→ Первый заблокировал запись → поменял → отпустил
→ Второй получил доступ → поменял → отпустил
→ Всё честно ✅

Типы блокировок:
Shared: Многие могут читать, но никто не пишет
Exclusive:
Только один пишет, остальные ждут
Intent: «Я планирую заблокировать часть таблицы»

Проблемы:
1. Блокировки (Locks)
→ Один процесс держит данные
→ Остальные ждут
→ Решение: делать транзакции короткими
2. Взаимная блокировка (Deadlock)
→ Процесс A держит X, хочет Y
→ Процесс B держит Y, хочет X
→ Оба ждут вечно
→ Решение: БД убивает одну из транзакций (rollback)

Как избежать проблем?
✅ Делать транзакции короткими
✅ Блокировать минимум данных
✅ Обращаться к таблицам в одинаковом порядке
✅ Использовать оптимистичные блокировки (версионирование)
✅ Настраивать таймауты на ожидание

Мораль:
Блокировки — это как очередь в туалет.
Неприятно ждать, но без очереди будет хуже 😅
  • 😁 5
  • 🤬 1
More from @safromperm
  1. Sep 22, 2026Post #93
  2. Sep 22, 2026​💸 А вот и пост про деньги и московскую недвижимость ​На днях знакомый из крупной компани…
  3. Sep 17, 2026Младшие аналитики, принесли вам классный пост, как в компании оценивают скиллы действующие…
  4. Sep 14, 2026Дошли руки до «Руководства по DevOps» 📖 ​Честно говоря, по названию ждал сугубо техническ…
  5. Sep 2, 2026Всем привет! Автор вернулся и привёз с собой вагон новостей! Летом отдыхал от ведения кана…
  6. May 20, 2026photo post
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →