Sqlalchemy: session.query () против conn.execute () - PullRequest
0 голосов
/ 05 августа 2020

Я обнаружил, что каждый сеанс вызывает .rollback() при закрытии.

Так что дозируйте это для лучшей производительности, если мне нужен только один выбор (транзакция не требуется), чем лучше переписать код из

session = init_session()
result = session.query(Currency.id, Currency.code).all()
session.close()

до версии с conn.execute()?

1 Ответ

0 голосов
/ 05 августа 2020

Из-за Python DB-API 2.0 SPE c вы будете запускать все в транзакции, даже если вы используете эмулируемую функцию «автофиксации» из SQLAlchemy, если вы явно не выберете , устанавливая уровень изоляции транзакции на "AUTOCOMMIT" и ваш драйвер не поддерживает его. С точки зрения производительности выполнение вашего запроса в транзакции должно иметь незначительное влияние. Просто не забудьте закрыть транзакцию, когда вы закончите, что вы, кажется, делаете, чтобы все зарезервированные ресурсы были освобождены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...