mirror of
https://github.com/django/django.git
synced 2025-11-02 04:48:33 +00:00
Fixed #20215 -- Disabled persistent connections by default.
This commit is contained in:
parent
f25fc5b220
commit
3d595c3bc3
5 changed files with 34 additions and 36 deletions
|
|
@ -22,14 +22,14 @@ Persistent connections
|
|||
.. versionadded:: 1.6
|
||||
|
||||
Persistent connections avoid the overhead of re-establishing a connection to
|
||||
the database in each request. By default, connections are kept open for up 10
|
||||
minutes — if not specified, :setting:`CONN_MAX_AGE` defaults to 600 seconds.
|
||||
the database in each request. They're controlled by the
|
||||
:setting:`CONN_MAX_AGE` parameter which defines the maximum lifetime of a
|
||||
connection. It can be set independently for each database.
|
||||
|
||||
Django 1.5 and earlier didn't have persistent connections. To restore the
|
||||
legacy behavior of closing the connection at the end of every request, set
|
||||
:setting:`CONN_MAX_AGE` to ``0``.
|
||||
|
||||
For unlimited persistent connections, set :setting:`CONN_MAX_AGE` to ``None``.
|
||||
The default value is ``0``, preserving the historical behavior of closing the
|
||||
database connection at the end of each request. To enable persistent
|
||||
connections, set :setting:`CONN_MAX_AGE` to a positive number of seconds. For
|
||||
unlimited persistent connections, set it to ``None``.
|
||||
|
||||
Connection management
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
|
@ -64,13 +64,22 @@ least as many simultaneous connections as you have worker threads.
|
|||
|
||||
Sometimes a database won't be accessed by the majority of your views, for
|
||||
example because it's the database of an external system, or thanks to caching.
|
||||
In such cases, you should set :setting:`CONN_MAX_AGE` to a lower value, or
|
||||
even ``0``, because it doesn't make sense to maintain a connection that's
|
||||
unlikely to be reused. This will help keep the number of simultaneous
|
||||
connections to this database small.
|
||||
In such cases, you should set :setting:`CONN_MAX_AGE` to a low value or even
|
||||
``0``, because it doesn't make sense to maintain a connection that's unlikely
|
||||
to be reused. This will help keep the number of simultaneous connections to
|
||||
this database small.
|
||||
|
||||
The development server creates a new thread for each request it handles,
|
||||
negating the effect of persistent connections.
|
||||
negating the effect of persistent connections. Don't enable them during
|
||||
development.
|
||||
|
||||
When Django establishes a connection to the database, it sets up appropriate
|
||||
parameters, depending on the backend being used. If you enable persistent
|
||||
connections, this setup is no longer repeated every request. If you modify
|
||||
parameters such as the connection's isolation level or time zone, you should
|
||||
either restore Django's defaults at the end of each request, force an
|
||||
appropriate value at the beginning of each request, or disable persistent
|
||||
connections.
|
||||
|
||||
.. _postgresql-notes:
|
||||
|
||||
|
|
|
|||
|
|
@ -509,7 +509,7 @@ CONN_MAX_AGE
|
|||
|
||||
.. versionadded:: 1.6
|
||||
|
||||
Default: ``600``
|
||||
Default: ``0``
|
||||
|
||||
The lifetime of a database connection, in seconds. Use ``0`` to close database
|
||||
connections at the end of each request — Django's historical behavior — and
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue