python - Sqlalchemy:session.query() 与 conn.execute()
问题描述
我发现每个会话都.rollback()
在关闭时调用。
因此,为了获得最佳性能,如果我只需要单选(不需要事务)比重写代码更好
session = init_session()
result = session.query(Currency.id, Currency.code).all()
session.close()
与conn.execute()
?
解决方案
由于 Python 的DB-API 2.0 规范,您将在事务中运行所有内容,即使您使用 SQLAlchemy 的模拟“自动提交”功能,除非您明确选择将事务隔离级别设置为"AUTOCOMMIT"
并且您的驱动程序支持它。从性能的角度来看,在事务中运行查询的影响应该可以忽略不计。请记住在完成后关闭事务,您似乎正在这样做,以便释放任何保留的资源。
推荐阅读
- php - PHP图像旋转旋转到固定位置
- algorithm - 针对涉及计算 2 个或更多数字的唯一倍数的问题优化空间复杂度?
- laravel - Laravel Factory 为每个未隔离的相同工厂调用之间创建
- r - 从模拟网格的历史中查找单元的合并时间
- javascript - SyntaxError: "JSON.parse: unexpected non-whitespace ..." 当从 PHP 返回 JSON
- bash - 我如何保持从其他人那里下载的更新的 Github 存储库?
- python - python 3.x discord.py Music Bot - 如何制作可以在多个服务器上播放的音乐队列
- apache-flink - timeWindow 不考虑事件时间
- rest - 如何在 Springfox 的 Swagger 2 中为 JSONObject 请求正文自定义示例值?
- pine-script - 内部服务器研究错误 > pivothigh / pivotlow