【发布时间】:2016-06-06 01:24:14
【问题描述】:
我正在开发一个使用 SQLAlchemy 的 ORM 库的 Pyramid 应用程序,因此我们使用会话。我不清楚会话和连接池如何协同工作,或者我什至在使用会话时是否需要连接池。
目前,我们是这样创建会话的:
engine = create_engine(connection_string)
Session = sessionmaker(bind=engine)
我已修改创建引擎以添加连接池:
pooled_engine = create_engine(connection_string, pool_size=20, max_overflow=5,echo=True, echo_pool=True)
Session = sessionmaker(bind=pooled_engine)
这似乎有效(应用程序连接到数据库并可以读取/写入数据库),但我无法判断是否正在使用连接池。我尝试记录连接池代码,但在控制台上看不到任何内容。但是,我确实看到了由于 echo 标志设置为 True 的 SQL 语句。
我不明白会话和连接池如何协同工作,或者为什么当 echo_pool 设置为 True 时我看不到日志语句。
任何帮助将不胜感激,
谢谢
【问题讨论】:
标签: python session orm sqlalchemy connection-pooling