gpt4 book ai didi

python - Mysql连接池问题: is it worth it?

转载 作者:IT老高 更新时间:2023-10-29 00:03:49 27 4
gpt4 key购买 nike

我记得听说 mysql 中的连接过程被设计为与其他 RDBMS 相比非常快,因此使用 a library that provides connection pooling如果您启用连接池,(SQLAlchemy) 实际上不会帮助您那么多。

有没有人有这方面的经验?

我对启用它持谨慎态度,因为如果某些代码对数据库连接做了一些有状态的事情并且(可能错误地)没有自行清理,那么通常会在关闭连接时清理的状态相反,将传播到获得回收连接的后续代码。

最佳答案

使用 SQLA 的连接池时,无需担心连接上的残留状态,除非您的应用程序正在更改连接范围的选项,如事务隔离级别(通常情况并非如此)。 SQLA 的连接池在连接重新 checkin 时在连接上发出 connection.rollback(),以便清除任何事务状态或锁定。

MySQL 的连接时间可能非常快,尤其是当您在同一台机器上通过 unix 套接字进行连接时。如果你确实使用连接池,你还想确保连接在一段时间后被回收,因为 MySQL 的客户端库将自动关闭空闲超过 8 小时的连接(在 SQLAlchemy 中,这是 pool_recycle 选项)。

您可以通过将池实现从默认的 QueuePool 更改为 NullPool 来快速执行一些连接池与非 SQLA 应用程序的基准测试,这是一个实际上不池化任何东西的池实现 - 它连接和断开连接当代理连接被获取并随后关闭时是真实的。

关于python - Mysql连接池问题: is it worth it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/405352/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com