Что такое блокировка в БД

Python Senior Без компании
Что такое блокировка в БД
Ответы
Блокировка в БД — это механизм, который предотвращает одновременное изменение одних и тех же данных разными транзакциями, обеспечивая целостность данных. **Типы блокировок:** - **Shared (S)** — чтение, другие транзакции могут читать, но не изменять. - **Exclusive (X)** — запись, другие транзакции не могут ни читать, ни изменять. - **Intent (IS, IX)** — указывает намерение заблокировать часть данных. **Пример (PostgreSQL):** ``` BEGIN; -- Блокировка строки для изменения SELECT * FROM users WHERE id = 1 FOR UPDATE; -- Другие транзакции ждут разблокировки UPDATE users SET balance = balance + 100 WHERE id = 1; COMMIT; ``` **Проблемы:** - **Deadlock** — взаимоблокировка транзакций. - **Блокировка таблицы** — может снижать производительность. Используйте с осторожностью, минимизируя время удержания блокировок.