Skip to content

Commit

Permalink
Fixed #14231 -- Added an index to the expire_date column on the Sessi…
Browse files Browse the repository at this point in the history
…on model. Thanks to joeri for the report, via Frodo from Medid.

This won't affect any existing session tables; see the release notes for migration instructions.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@14378 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
freakboy3742 committed Oct 28, 2010
1 parent 90ac023 commit ea85d43
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 1 deletion.
2 changes: 1 addition & 1 deletion django/contrib/sessions/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class Session(models.Model):
session_key = models.CharField(_('session key'), max_length=40,
primary_key=True)
session_data = models.TextField(_('session data'))
expire_date = models.DateTimeField(_('expire date'))
expire_date = models.DateTimeField(_('expire date'), db_index=True)
objects = SessionManager()

class Meta:
Expand Down
18 changes: 18 additions & 0 deletions docs/releases/1.3.txt
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,24 @@ To return to the previous rendering (without the ability to clear the
model = Document
widgets = {'document': forms.FileInput}

New index on database session table
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Prior to Django 1.3, the database table used by the database backend
for the :doc:`sessions </topics/http/sessions>` app had no index on
the ``expire_date`` column. As a result, date-based queries on the
session table -- such as the query that is needed to purge old
sessions -- would be very slow if there were lots of sessions.

If you have an existing project that is using the database session
backend, you don't have to do anything to accommodate this change.
However, you may get a significant performance boost if you manually
add the new index to the session table. The SQL that will add the
index can be found by running the :djadmin:`sqlindexes` admin
command::

python manage.py sqlindexes sessions

.. _deprecated-features-1.3:

Features deprecated in 1.3
Expand Down

0 comments on commit ea85d43

Please sign in to comment.