Я использую SQLAlchemy и есть как минимум три объекта: engine, session и connection, которые имеют метод execute, поэтому, если я, например, хочу выбрать все записи из table я могу это сделать
engine.execute(select([table])).fetchall()
и это
connection.execute(select([table])).fetchall()
и даже это
session.execute(select([table])).fetchall()
- результаты будут одинаковыми.
Насколько я понимаю, если кто-то использует engine.execute он создает connection, открывает session (Alchemy позаботится об этом для вас) и выполняет запрос. Но существует ли глобальное различие между этими тремя способами выполнения такой задачи?