Django 1.6 现在支持 CONN_MAX_AGE
来池化数据库连接。
默认情况下,该值为0(不池化)。 针对此选项,一个合理的值是多少?
Django 1.6 现在支持 CONN_MAX_AGE
来池化数据库连接。
默认情况下,该值为0(不池化)。 针对此选项,一个合理的值是多少?
“让连接保持时间越长,数据流量就可以越大”这个说法并不是那么简单。
这还取决于你如何运行Django。
目前,在gunicorn+greenlet(evenlet或者gevent)上启动Django是比较流行的方式。如果你将CONN_MAX_AGE设置为60秒(甚至是在我的情况下设置为5秒),你可能会从DB服务器得到“连接过多”的投诉。
详情请参见:
这个值取决于你的网站流量,流量越大保持连接的时间就越长。我建议设置一个相对较小的值,例如 60
,然后根据使用模式进行调整。
编辑(2018):
正如@jcyrss所指出的,这种方法有其缺陷,未来建议将连接池分配给类似pgbouncer的东西。