Встречается на собеседованиях • сегодня
Как БД будет обрабатывать одновременные запросы
БД обрабатывает одновременные запросы через механизмы транзакций и изоляции. Основные подходы:
-
Блокировки:
- Пессимистичные (блокируют данные заранее)
- Оптимистичные (проверяют конфликты при коммите)
-
Уровни изоляции (ANSI SQL):
- Read Uncommitted
- Read Committed (по умолчанию в PostgreSQL)
- Repeatable Read
- Serializable
Пример конфликта в Python с SQLAlchemy:
python
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
engine = create_engine('postgresql://user:pass@localhost/db')
Session = sessionmaker(bind=engine)
# В двух разных процессах
session1 = Session()
session2 = Session()
# Process 1
user1 = session1.query(User).get(1)
user1.balance += 100
# Process 2
user2 = session2.query(User).get(1)
user2.balance -= 50
session1.commit() # Может вызвать конфликт
session2.commit() # Зависит от уровня изоляцииСовременные БД используют MVCC (Multiversion Concurrency Control) для минимизации блокировок. PostgreSQL, например, создает "снимки" данных для каждой транзакции.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы