【问题标题】:Why limit DB Connection Pool Size in SQLAlchemy?为什么限制 SQLAlchemy 中的数据库连接池大小?
【发布时间】:2016-11-26 19:34:03
【问题描述】:

这是我之前发布的关于 SQLAlchemy 中的数据库连接池错误的 question 的后续内容。

根据 SQLAlchemy docssqlalchemy.pool.QueuePool.__init__() 方法采用以下参数:

pool_size – 要维护的池大小,默认为 5。这 是永久保持的最大连接数 游泳池。请注意,池开始时没有连接;一旦这 请求连接数,该连接数将 保持。 pool_size 可以设置为 0 表示没有大小限制;到 禁用池,改用 NullPool。

设置 pool_size=0 有什么缺点?限制连接池大小有什么好处?只是为了节省内存吗?数据库不应该真正关心是否打开了大量未使用的连接,对吧?

【问题讨论】:

    标签: python database sqlalchemy


    【解决方案1】:

    不限制池大小的主要缺点是失控程序可能会创建太多连接。

    在数据库级别和 O/S 级别对数据库支持的连接数都有实际限制。每个连接还将使用额外的内存。限制池大小有助于保护您的数据库免受程序中的错误或对服务器的恶意攻击。其中任何一个都可能因使用过多的连接或过多的内存而使您的数据库服务器停止运行。

    正常情况下,每个连接使用的额外内存应该不是太大的问题,但最好将其限制为您认为您将同时使用的最大数量(也许加上一些很好的衡量标准)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-26
      • 1970-01-01
      • 2020-08-02
      • 1970-01-01
      • 2019-02-24
      • 2021-07-23
      • 2020-11-25
      • 2020-01-02
      相关资源
      最近更新 更多