Что такое блокировка в БД
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** — взаимоблокировка транзакций.
- **Блокировка таблицы** — может снижать производительность.
Используйте с осторожностью, минимизируя время удержания блокировок.