Встречается на собеседованиях • сегодня

Какие знаешь типы блокировок бд

В Python при работе с базами данных (например, PostgreSQL, MySQL) используются следующие типы блокировок:

  1. Эксклюзивные (Exclusive Locks) – блокируют запись/таблицу для любых других операций (SELECT FOR UPDATE).
  2. Разделяемые (Shared Locks) – разрешают чтение, но запрещают изменение (LOCK IN SHARE MODE).
  3. Оптимистичные (Optimistic Locks) – проверяют конфликты при коммите (версионирование).
  4. Пессимистичные (Pessimistic Locks) – блокируют данные заранее.
  5. Явные (Explicit Locks) – ручное управление (BEGIN; LOCK TABLE).

Пример пессимистичной блокировки в SQLAlchemy:

python
with session.begin():
    user = session.query(User).with_for_update().filter_by(id=1).first()
    user.balance += 100

Пример оптимистичной блокировки через версию:

python
class User(Base):
    __versioned__ = {}
    id = Column(Integer, primary_key=True)
    version_id = Column(Integer)

Выбор типа зависит от уровня изоляции транзакций и требований к параллелизму.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы