Engine управляет взаимодействием с СУБД и пулом соединений, а Session — ORM-объектами и единицей работы. Session получает соединение из пула, когда действительно требуется обратиться к базе.
Как организована работа сессии SQLAlchemy — какой путь она проходит (engine, pool, session)?
Engine управляет взаимодействием с СУБД и пулом соединений, а Session — ORM-объектами и единицей работы. Session получает соединение из пула, когда действительно требуется обратиться к базе.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Engine управляет взаимодействием с СУБД и пулом соединений, а Session — ORM-объектами и единицей работы. Session получает соединение из пула, когда действительно требуется обратиться к базе.
Типичный путь: создают Engine и фабрику Session, открывают Session на ограниченную операцию, выполняют запросы, flush и commit либо rollback, затем закрывают Session. Соединение возвращается в пул, а не обязательно физически закрывается. Session обычно не берёт соединение сразу в конструкторе. Одну Session нельзя использовать как общий конкурентный объект для всех запросов; границы сессии и транзакции нужно задавать явно.