Saq*_*Ali 5 python database sqlalchemy
这是我之前发布的有关SQLAlchemy中数据库连接池错误的问题的后续跟进.
根据SQLAlchemy 文档,该sqlalchemy.pool.QueuePool.__init__()方法采用以下参数:
pool_size - 要维护的池的大小,默认为5.这是将在池中持久保留的最大连接数.请注意,池开始时没有连接; 一旦请求此连接数,将保留该连接数.pool_size可以设置为0表示没有大小限制; 要禁用池,请改用NullPool.
设置pool_size = 0有什么缺点?限制连接池大小有什么好处?它只是为了节省内存吗?如果大量未使用的连接打开,数据库应该不在乎,对吧?
不限制池大小的主要缺点是失控程序可能会创建太多连接.
数据库级别和O/S级别对数据库将支持的连接数有实际限制.每个连接也将使用额外的内存.限制池大小有助于保护数据库免受程序中的错误或服务器上的恶意攻击.这些中的任何一个都可能通过使用太多连接或太多内存而使数据库服务器停滞不前.
在正常情况下,每个连接使用的附加内存不应该是一个太大的问题,但最好将其限制为您认为将同时使用的最大数量(可能加上一些用于良好测量).
| 归档时间: |
|
| 查看次数: |
4347 次 |
| 最近记录: |